I’ve created a workflow with which users can render spectral images with Cycles. At this stage, I’m not proposing to turn Cycles into a spectral render, but have been encouraged to bring it up here as a point of discussion.
I am aware Cycles is not trying to be a perfectly physically correct renderer, and I think how Cycles is doing things is good, it is simple to use and gives pleasing results easily. I don’t want to remove these aspects to Cycles, which is why I am phrasing this as a discussion rather than a proposal.
The workflow (with a lot of help from @troy_s) is now mathematically sound (produces the correct colours as per colour science standards), and allows users to choose RGB colours in materials (using a somewhat crude spectrum synthesis method), meaning the added difficulty in creating materials is actually quite low. In terms of performance, I expect there would be some slowdown, but from what my testing has shown, it isn’t as much as one might think. My test images rendered in roughly 1.2-1.5 times what regular Cycles could do them in, and that included a whole lot of unneeded BVH rebuilds.
My point of discussion is this:
Would it fit with the outlook of Cycles to have a spectral “mode”, which would trade some performance for the simulation of spectral phenomenon? From what I can gather, it doesn’t necessarily go against the Design Goals, but I guess it is up to the owners to determine whether this fits with where they want to take Cycles. Doing light transport calculations with only 3 lights is a pretty severe approximation, so in that sense, rendering spectrally actually fits in with the design goals.
I am confident Cycles is capable of becoming a spectral renderer with relative ease. Of course there are plenty of ways we could make the user’s life easier, which would take extra time. All of this will come with time, discussion and testing.