
Bidirectional would just be slightly more accurate-looking.

It wasn't possible to randomize something per ray before, but now it actually is and you can, in fact, approximate dispersion very well in RGB. Just make sure it's the same white noise node to randomize both.Īll that bidirectional path tracing does is seemingly just randomize the wavelength and use that to determine the refraction IOR. And because it's fully deterministic PRNG (same input = same output), if it generates 0.68274, it will use that number for the IOR & the hue of the color, effectively mimicking the property of certain wavelength refracted at certain degrees. So if you put something like Geometry > Position or a texture coordinate (as long as it's different depending on where the ray lands on it) it will be noisy at first (some pixels white/some black/some in between) because each iteration it actually samples ramdom trajectory within each pixel's cell.Īll this is to say, you can actually use the white noise to randomize the IOR and the color. So if you put something like Geometry > Position or a texture coordinate (as long as it's different depending on where the ray lands on it) it will be noisy at first (some pixels white/some black/some in between) because each iteration it actually samples ramdom trajectory. It generates a random value based on the input. It generates a random value based on the input. I know this is old, but there's now a White Noise Texture added with 2.81. I know this is old, but there's now a White Noise Texture added with 2.81. Yafaray is another open source render engine with blender integration that supports both biased and unbiased techniques, and also seems to handle this well. Luxrender (technically SmallLuxGPU, an early version of luxrender with GPU support) Luxrender is an open source unbiased bi-directional rendering engine with blender integration (and GPU rendering support via OpenCL) and is capable of this. (Not that great, but the closest method I know of.) One technique I know of is to use multiple Glass shaders with different IOR values It is fake-able to some extent in cycles, see some of these results:
