Abbe the wrong way around?
As part of trying to explain Abbe to someone and show how it affects different wave lengths, I was replicating the Dark Side of the Moon album cover in Iray, and... well, there's a problem. Long wavelengths (red) should be refracted less than shorter wavelengths by a prism, but this is opposite of the result I'm getting in Iray, where the red light is refracted more.
3 sided cylinder primitive, Abbe is set to 5, ROI is 1.5, surface smoothing is off, spectral rendering and caustic sampler are on (although caustic sampler seems to make no difference to the colour order).
I'm currently using the 4.20 main release, and I've attached my test scene for others to check my results (it's a light, a plane primitive, cylinder primitive and a camera with perspective off, so very small, and requires no other content) or otherwise tell me how I've messed up.
Comments
Confirmed on 4.16.1.47 beta.
It happens with all glass materials including those from vMaterials 2.0.
Sounds like possibly a bug, or rather a purposeful miscalculation because of lack of understanding, in Iray itself. Has anyone tried rendering something similar in another application that renders with Iray? Is there even another application that uses the Iray render engine?
Righto. I've now had a couple of people tell me they've had the same results, so I've put in a ticket about the colour dispersion. It's probably an Iray problem, but it's not inconceivable that it's something wrong with the DS integration (incorrect conversion between RGB and BGR colour is entirely possible), and in any case, Daz are better placed to report it to Nvidia than I am.
There are indeed other applications, but I don't think I have any of them. If someone can try in another application and help confirm its with Iray itself, that'd be useful.
I digged a bit deeper.
It seems, all dispersive materials use the abbe function provided by the mdl base module. I can't find information though how this function calculates the light bending with respect to wavelength. My guess is, in this case it is an issue deep in the core of iray and not something in the shaders.
From the mdl spec.:
Function: abbe_number_ior returns color
Description: Calculate spectral index of refraction