BlackhartFilms takes a hard look at the new 'Principled BSDF' PBR shader node that will be included in Blender 2.79.
2.79 is shaping up to be an exciting update, including proper Shadow Catchers, Persistent Data to massively speed up animation renders, but arguably most exciting is the new Principled BSDF shader, based on Disneys Pixar BRDF model. Finally, a proper PBR universal shader built directly into Blender! So I spent a full day testing it against a PBR Uber-Shader in a variety of scenes to come to some rough conclusions.
3 Comments
Thanks for a very interesting write-up. Disregarding all the technical details, in the side by side renders I thought that the Principled BSDF renders seemed to have better dynamic range than the Uber renders, which all tend to have a slightly washed-out pastel look. Having said that, I expect a touch of contrast boost would give the Uber renders the same level of 'pop'.
I suspect this is because of the light-wrapping and the fact I was using Filmic Blender. AFAIK Filmic stretches the dynamic range such that the absolute brightest point in your image and the absolute darkest are mapped out in a Filmic Log style, and then applying the Base Contrast LUT will attempt to correct it back down to a less washed out version. I mentioned in the write-up that the new shader seemed to be consistently brighter likely because of the light-wrapping it was exhibiting, which means Filmic Blender would be giving it more perceived contrast despite the same exact light setups being used.
Did you use Multiscatter GGX or GGX? Multiscatter GGX is a bit slower for me and produces more fireflies, but also seems to be more accurate and solves the darkening problem when using high Roughness values. The comparison you did was very intereresting and I aggree on the most points (Emission Input, IOR..) - but in my eyes the brighter Fresnel Reflections that the Principled BSDF produces actuallylook better and more realistic then the ones in your Ubershader. In Disney's original paper (very nice read btw), it says
"....This corresponds to ior values in the range [1.0, 1.8], encompassing most common
materials. Notably, the middle of the parameter range corresponds to an ior of 1.5, a very typical
value, and is also our default."
I think this is a very good range that should work for all materials - but yeah IOR might still be usefull if you wan't to go ultra realistic.