Reconstructing the Principled Shader SSS with standard nodes


(ToshiCG) #1

I posed this on stack exchange. Really curious to figure this out.


Here is the problem:

I am trying to reproduce an SSS shader that I created using Principled BSDF with standard nodes. (I want to add some complexity to the shader but I really like basic results of Principled).

In the image below you can see my attempt to recreate the Principled shader with individual nodes. As you can see in the monkies the results are not the same. The results of Principled appear to have more variation of the scattering effect depending on the volume thickness.

According to the Blender manual the “Subsurface” slider in Principled mixes Diffuse and SSS. So in my custom shader I Mixed diffuse and SSS shaders with the same mix factor of 0.1.

What I am I missing? Does the Principled SSS do something else under the hood?

(The rest of the shader attempts to recreate the glossy/roughness part. This one is fine. I am interested in recreating the SSS component exactly).



(CarlG) #2

I don’t know anything about subsurface, but there are things you can’t do using node setups; oren-nayar (diffuse roughness) behaves differently and we have no sheen substitute. Also note that the principled handles fresnel for backfacing faces automatically. Back when I did my own disney->pbr setups (the old version, not the new that handles transmissions, which you’ll find isn’t easily translatable at all) anything transmissive I had to handle as specific cases; backside transmissive specular glow like this (need special refraction setup), thin or solid like that, and so on.

Back then, the disney subsurface was supposed to be a cheap hack that resembled subsurface. From 5.2 2012 version:
“subsurface: controls diffuse shape using a subsurface approximation.”
Our principled seems to be a mix of the 2012 version and newer versions which have more features, like real subsurface and basic transmission.