Thoughts on making Cycles into a spectral renderer
is this commit relevant to the spectral branch? The implementation here is specifically for pseudospectral features (complex IoR, thin film interference) in the Principled v2 shader. But it adds a wavelength type that presumably could also be used for spectral rendering, right?

Forgive me if I misremembere but I recall Lukas alluding to that specifically in his talk

Many people using non-blender installed versions of machines have encountered rendering that does not call Color Management properly.

I am having problem understanding what you mean here…

Do you mean “machines with something called ‘non-blender’ installed”? Or “machines without Blender”?

How do you “encounter rendering” without Blender? Are you talking about some other 3D rendering software?

What does “call Color Management” means?

The post you replied to was talking about earlier versions of Blender (before 3.2) has a bug about the OCIOv2 aliases feature, the bug was fixed after this bug report was taken care of

Not sure what you are talking about?


Is there a road map or something showing where the progress is currently at?
I am really interested in this project but don’t find any information of how far you guys have come over the years

Thank you in advance & Thank you for everyone involved with this!

1 Like

Hi, I started updating the branch to the latest version of blender 2 weeks ago. Spectral rendering already works, but there are issues such as only with 4 wavelengths per ray can be used.

I’m planning to improve the state of the branch to be compatible with all the latest additions and changes, like path guiding and fix bugs. When it’s done, the branch should be easy to keep up to date and I can start submitting changes for review.


Is there a branch build we can test now?


Awesome, is there a MacOS build?

I don’t have any Apple devices, so I can’t make a macOS build.

Hmm ok, I’m super anxious to test this out.

1 Like


these reddish artifacts at the bottom do disappear over time but initially they are really prominent and clearly affect the render result. I’m assuming that’s some sort of bug

It’s not consistent tho - second time rendering it, it didn’t happen

Edit: It may just be happening on first render? Seems fine ever after, or that’s my conclusion right now

Here is the finished result (using AgX)

it’s not yet that interesting until we get proper spectrum input support (alongside corresponding math nodes), and Path Guiding support, but I’m glad to finally have a working version of the spectral branch again


Bug when turning off scene world in GPU mode:

Actually, enviornmental texture is unable to work in GPU mode at all…

Interestingly sky texture works:

Hmm no, bugged again after tweaking the settings


This is currently roughly the most extreme thing to expect to come out of this branch (until further features are added)




is this a volumetric scene ? Also what color management is used ?

Nope, all of these rooms are diffuse only, using pure RGB values (so the top row has a diffuse material with the color RGB 1 0 0, etc.)
Each column also features a pure RGB light source (so the left-most row is lit by a light source of RGB 1 00 etc.)

No volumetrics anywhere. The blown-out results in the RGB version are due to these extreme colors: Light doesn’t go darker as it bounces (unless it escapes into the black abyss outside behind the camera), nor does it go more saturated (as these colors are already as saturated as they could possibly get in a 3-channel RGB setting using sRGB as the rendering colorspace)

In contrast, in the spectral scene these same colors are defined by broad spectra and thus can change saturation and lightness over time, allowing these rooms to show somewhat more definition.
This also means, that there is cross-talk between color channels, so you get, say, green rooms lit by red lights appearing brownish, rather than pure black. This is much more realistic.

Note that this scene is hand-crafted to show the effect as clearly as possible. In most scenes you aren’t gonna see differences even remotely this drastic. The biggest effects are gonna happen with highly saturated scenes like this.

The color management is a recent version of AgX


That’s probably related to the other issue where using 8 wavelengths per ray gives strange results. Likely a memory-related issue, but I haven’t found the culprit yet.

That’s exactly the same issue as the last time – multiple importance sampling for background not working on GPU. My previous solution doesn’t seem to work, though. I’m getting mysterious crashes from within the CUDA libraries, which are closed-source.

I am seeing huge difference between CPU and GPU results, here is BT.709 blue light shed on BT.709 blue cube:

(view transform is Guard Rail, so no de-abney flourish applied)

The GPU result seems to be bugged, it looks so much more cyan than it should be.

GPU final render seems to have some kind of scaning lines artifacts:

The artifacts keep changing during the sampling process, and stopped changing after sampling ends.


did you try it twice? Second time tends to work fine for me

1 Like

It keeps happening on my end.