5
$\begingroup$

This question is based on the shader in this answer. When I render the scene using plain glass for the material ball, it takes about 500 samples to converge. Here is the node setup and the result at 512 samples:

enter image description here

enter image description here

When I use the dispersion glass material, however, it produces a large amount of noise. Here is the node setup and the result at 2048 samples (4 times as many samples, which should be more than enough to make up for using 3 glass nodes).

enter image description here

enter image description here

Using mix shaders with 3x brighter glass produces the same result. The image does eventually converge after around a hundred thousand samples, but that's obviously not practical for real-world renders. Here is an overnight render at 65536 samples:

enter image description here

I can get a similar, but slightly different, result in far fewer samples by rendering 3 separate images and combining the color channels in an image editor:

enter image description here

But that leaves me with two questions: first, why does using the add shader produce so much more noise than expected? Second, why does it give a different result than a normal glass shader? Specifically, where does the black band at the bottom of the material ball come from?

Here is the .blend file, for reference:

All of this is observed in the material ball scene as of Blender 2.76. There are no lamps in the scene, and enabling/disabling multiple importance sampling of the world background doesn't have any significant effect on the noise. I haven't tested it in other scenes or other versions of Blender/Cycles.

$\endgroup$
3
  • $\begingroup$ Could the downvoter please explain why they downvoted and suggest how the question could be improved? $\endgroup$ – Stuntddude Jan 3 '16 at 9:03
  • $\begingroup$ What would be the purpose of adding those shaders? If you need three different colors for the shame shader use color mix nodes. When glass shaders are added they break the energy conservation principle, so the object reflects more light than it receives. Read: blender.stackexchange.com/questions/102462/… $\endgroup$ – susu Feb 6 at 4:24
  • $\begingroup$ @susu An add node is correct here because each branch of the shader is calculating a separate and mutually exclusive portion of the final color (namely the red, green, and blue channels). Please actually read the question and make sure you understand it before writing a condescending, dismissive comment. $\endgroup$ – Stuntddude Feb 10 at 3:36
0
$\begingroup$

This method can be used for every 3d program: you render 1 sample 200 times at same spot and combine using average mode.

$\endgroup$
0
$\begingroup$

It looks like by splitting out into three glass shaders you're getting three times the caustics, and they're tricolor making them difficult to resolve.

Unfortunately cycles is not great with glass, there are other types of renderers that use algorithms like Metropolis Light Transport to find the most likely refraction angles and bias rays in those directions.

LuxCoreRender might be a place to start.

$\endgroup$
1
  • $\begingroup$ I expect this shader to produce 3x as much noise (or even 4x, because the nested add nodes might be splitting samples 50/50, and then 50/50 again if they go down the blue/green branch). Instead, the observed behavior is that it produces more than 100x as much noise. The dark band also remains unexplained. $\endgroup$ – Stuntddude Feb 10 at 3:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.