[Solved] Trying to understand the Multiscatter GGX

i’m trying to understand that thing. from what i have understood, it gives more energy to the scene, as light is reflected in a more accurate way. i have two questions. Are the guys i put the link below the creators of that thing. and second question: is it a kind of ray tracing. because what i’m also investigating, it’s that if it’s a ray tracing (and it has the appearanceof it), it’s probably a ressource leach too. thus not really suited for most of nowadays video games projects


Not really. It’s a statistical formulation based on the assumption that part of the incoming light will bounce a few times in the surface roughness and still being added to the outgoing direction. This constrasts with previous microfaceting equations that would just think of the bounced light to simply be occluded and lost.

To understand it, try a simple glossy shader in a white furnace test - no lights, just a fully white background and fully white shader color. At low roughnesses there is hardly any difference between GGX and GGX Multiscatter. At high roughness, GGX looses energy - it becomes darker at glancing edges where it should still remain fully white. GGX multiscatter behaves much better and remains nearly perfect white.

There is a performance hit though, and I personally need a very good excuse to use it for my kind of projects. I’m pure GGX (or bechman in some cases, a-s in few cases) unless the situation really warrants it.

Multiscatter GGX also stops glass with a high roughness becoming dark.

so is it a kind of fake(simulated) ray tracing then?

Well… yes and no; at least not quite, since there’s no ray tracing at all.

Here’s how it works: supplemental_implementation.pdf (653.6 KB)