Cycles proposal; Replace Beckmann shading with a control over the GGX specular tail

This especially being since the new Multiscatter GGX is literally the only way to get correct results as far as glossiness/glass rendering is concerned.

The idea would assume, first of all, that the Beckmann shading model would disappear from the Glossy, Anisotropic, and Glass nodes. This in turn would be replaced by a new value that allows the user to control the length of the specular tail for GGX shading (a value of 0 for instance would mean a quick termination akin to Beckmann and values of 2 and above would mean a very slow decay).

In general, having such control would be nice because I can see shading uses for very low and very high values, a very low value for instance can give a ‘fatter’ look to the shading while a very high value could be useful for cloth/textile effects. In addition, having this control replace Beckmann shading would mean less Kernel pressure for GPU users (since we essentially swap one feature for a much better one).

For more details, here’s a visual idea as to how the specular tail control could be mapped


Also, just to put here, having control over the tailing is not without precedent in modern rendering, as shown in this image from 2015.


That’s the implementation of GGX in Vray, which is called GTR. I guess these images are from there.

GTR stands for generalized Trowbridge-Reitz, details can be found in
It could be implemented, but I’m not really sure whether it’s that useful for many cases.

why break away things that currently do work ??

not sure if its about glass although the new one is looking better
with less sample its also more prone to noise so just keep it all in.

I thought dough that there where plans to add a disney brdf ?, (or did i got that wrong?).

Yes Lukas, it’s just that GTR provides the same results as GGX, in case of Vray with a tail of 2.0. Whether it’s useful or not, from an artist standpoint I can say it is, but not necessarily a must, especially if the implementation is not simple/straightforward. The new Multiscatter GGX is far more important, IMHO.

From my understanding, setting the tail control to a very low value would give you something quite similar to Beckmann (but with the advantage of being able to have everything in between as well and then some).

The idea would be that the tail control would be integrated as a part of the new multiscatter model (along with the original GGX shader), and not as a separate shading algorithm.

I think it’s very nice idea to keep along and then some… when the time comes or if not before, could be considered with 2.8?