One of the new Cycles features in 2.78 is Multiscatter GGX.

enter image description here

When should I use it instead of the default? (Bonus question: and when sould I use the other possibilities in the Glossy, Glass and Anisotropic BSDFs?)

So far I found only the following

Essentially, the improvement is that unlike classical GGX, which only models single scattering and sets the contribution of multiple bounces to zero, this new model performs a random walk on the microsurface until the ray leaves it again, which ensures perfect energy conservation. In practice, this means that the "darkening problem" - GGX materials becoming darker with increasing roughness - is solved in a physically correct and efficient way.

The downside of this model is that it has no (known) analytic expression for evalation. However, it can be evaluated stochastically, and although the correct PDF isn't known either, the properties of MIS and the balance heuristic guarantee an unbiased result at the cost of slightly higher noise.

This sounds too technical to me. I understand the not-darkening part, but that's all...


What is it?

This is based on this paper.

Modeling multiple scattering in microfacet theory is considered an important open problem because a non-negligible portion of the energy leaving rough surfaces is due to paths that bounce multiple times.

This effect can be clearly seen in high roughness glass, where a lot of light rays were killed because they happened to reflect on the glass itself rather than reflecting or refracting away, which you can see it the images provided by them:

enter image description here

Their model enable the sample (light) to bounce multiple times before being killed, Which result a more relastic and lighter result. It is also worth mentioning that this model enable more efficient energy conservation because the light will bounce till it loose all its energy.

This can be seen here, where the alpha represent the roughness of the diffuse and the glass shader: enter image description here

However it doesn't really matter when the shader has low roughness since it is nearly imposible for the light to bounce on itself again, this can be seen in this shader with varity in roughness, you can see that the rough parts have a greater impact while smooth ones have almost no impact.

enter image description here

As for the speed of the rendering, using the multiscatter model will result only 2.5% slowdown which is pretty acceptable if you asked me.

When to use it?

Well it is pretty obvious that you should use it when you have shaders that have high roughness to avoid the dark areas. notice that the amount of darknening is directly proportional to the roughness of the shader, so if you have a semi low roughness you don't have to use multiscatter.


If you use a roughness different from zero it won't make the material lock darker if you increase the roughness.
So it might solve problem with dark materials. It will probebly be useful if you are changing the roughness during an animation.

The second part is saying that it might create a new problem because it might be inaccurate.

The thing they are considering physically correct is the part of conservation of energy, moving the light ray might be correct if it is quantum mechanics they are tying to simulate, but not as long as it is Einstein or Newtons laws we are talking about.

the plain is on 0, 0, 0, and the lamp also

enter image description hereenter image description here


enter image description hereenter image description here

GGX Multiscatter

  • $\begingroup$ Thank you, I upvoted for the effort, but this is not really the answer I was looking for. OK, the multiscatter is less dark, but is this all? What exactly do you mean by "inaccurate" in the second part, considering that the first part says that it is "physically correct"? What kind of problems might it cause? $\endgroup$ – WannaKnow Nov 4 '16 at 16:00
  • $\begingroup$ The main problem i can think of is reflections that is in the wrong place but because of the roughness it will probebly be fine. They did say it might be undiscovered problems. $\endgroup$ – Alfons Marklén Nov 4 '16 at 16:17
  • $\begingroup$ Can you show me an example where reflections are in the wrong place because the shader uses multiscatter GGX? Where did they talk about undiscovered problems? $\endgroup$ – WannaKnow Nov 4 '16 at 16:23
  • $\begingroup$ "The downside of this model is that it has no (known) analytic expression for evalation." The reflections will be in the wrong place like noise, the thing about moving the ray causes that. $\endgroup$ – Alfons Marklén Nov 4 '16 at 16:26
  • $\begingroup$ The effect on the reflection is probebly not a problem, it might be in rare occasions, like a lamp that cast a beam in 0,1 degrees angel. $\endgroup$ – Alfons Marklén Nov 4 '16 at 16:29

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.