Thoughts on making Cycles into a spectral renderer

Ok, great. I’m not expecting production ready rendering, but anything on the right path to better colors and lighting is very welcomed…
I think I found a new way to waste time for few hours daily now comparing renderings lol :smiley:

1 Like

If you want to compare them properly before I rebuild you can divide the render result with a colour of (1.103, 0.8686, 0.8323)

Just so you know, I’m a kind of person that can make decent living making some pictures but even that simple division I messed up and ended up with BW image :D…
At best I can provide some basic comparison on some of my scenes but otherwise I should probably stay away from this thread and not interfere :smiley:

Haha no problem, I’m just building now to see if I can fix the issue, but I think I need to be using OCIO which I don’t yet understand fully.

Please do share anything interesting you find, even with the colour cast :smile:

Thanks for this build; an amazing milestone actually!

I couldn’t find a way to do dielectric dispersion (IOR for the glass shader is a single value rather than a triplet or spectrum). Is there a way or should it be added to the “What’s not working” section of the CHANGELOG?

That’s still a while away unfortunately. It is my goal to be able to control things like IOR as wavelength-dependent, but what I’m focussing on first is getting feature-parity with master. No new stuff at all, just (hopefully) slightly more accurate light simulation.

Once that’s all there, I’ll start working on adding spectral-specific features like dispersion, thin-film, spectral ‘blackbody’ node, a way of actually creating spectral colours rather than always going through RGB, etc, etc…

hey! I rendered a new version of the test I’ve done yesterday. And the result is amazing. I barely see the difference between spectral Cycles and Octane! Good work!


Cycles with your build

Octane

3 Likes

The colour similarity is uncanny… I’m surprised there doesn’t seem to be even a little difference between them. Thanks for the test!

2 Likes

You may get a little more exposure by uploading your builds to GraphicAll for most builds i generally put a link to the devtalk thread for discussion.

3 Likes

Thanks @LazyDodo, I do plan to upload the builds there once they’re a bit more stable and require less explanation to use. I feel like having ‘feedback’ at this point might just tire me out.

2 Likes

I’ve uploaded a second build with a simple hack for getting white to look right. Downside is that it shifts the primary colours a tiny bit, so I really just need to figure out how to do it properly.

1 Like

Well appreciated, no worries!
I just figured to mention it for you CHANGELOG.md file.

/slaps hand

Do it properly lazybags ;). That isn’t properly, and will skew the results on saturated values.

I’m guessing it is a chromatic adaptation issue, correct?

Paging all people with GitHub Actions, Travis, or AppVeyor experience. Could someone work on @smilebags’s GitHub in a branch and get automated artifact building working for his branch?

Octane has zilch for pixel management last I looked; aka complete garbage. Blender has a long way to still go here, but it is literally a time zone away from where Octane is at the moment.

1 Like

that fixed it. Now I noticed that compared to your build, rgb cycles has now this very small pink tint in shadows…

I run a bunch of nightly windows builds already for GraphicAll, could eaily add this one, but @smilebags said he wanted to stabilize a little first.

Any chance the artifacts could be offloaded to GitHub’s infrastructure? Is GraphicAll one of the usual CI suspects for building?

Yeah that’s right, the conversion from spectral to XYZ ends up with E white point, but then it isn’t adapted to D65. This should happen through an OCIO config?

Yes.

Hit me with an email and I’ll jump on it now for this.

I will change all of the configs, assuming E as an entry point, yes?

That’s more likely to be an issue in my code than in Cycles, the numbers in RGB cycles just are what they are, they’re not based on physical values so you can’t really call them ‘right’ or ‘wrong’.

If doing everything properly, colours should still come out as you expect in the simple cases, so I’ll need to double check things

Yeah I think that’s right. I’ll send you an email