Principled BSDF is based on PxrDisney - PxrDisney is legacy

Blender recently added the Principled BSDF shader, which is based on Renderman’s PxrDisney. Renderman now has moved away from the PxrDisney shader and replaced it with the PxrSurfce shader. Will blender follow suit and add it equivalent to the PxrSurface shader?

It is my understanding that the PxrSurface shader much like the PxrDisney is PBR, however it adds some more “artistic” control if wanted.


PxrSurface documentation: https://rmanwiki.pixar.com/display/REN/PxrSurface

PxrDisney is legacy: https://github.com/prman-pixar/RenderManForBlender/wiki/Materials

They support both depending on the workflow you want to work with. PxrDisney is what MANY PBR workflows are based off of, with the color, metal, roughness and normal workflows. Pretty accurate, but not strictly physical. The PxrSurface shader is a little more intense, where it can be completely physical, and even use a spectral approach to materials (like LuxRender) especially when using conductors, but it also allows one to push things into the artistic realm. One reason why I still use PxrDisney is because I use that particular workflow out of Subtance and the translation between RenderMan and Cycles is painless, however I still can use the spec/glossy workflow should I choose to use PxrSurface.

Now I know that doesn’t answer your question, but I would think the developers would wait on such an “Uber Shader” for the time being, and Cycles doesn’t take a spectral approach to materials, so you would end up missing some of those features. I don’t see how it couldn’t be done, I just don’t see it happening soon. I have been wrong before.

Technically, PxrDisney, Cycles Principled and many PBR workflows are based off the Disney Principled Shader paper.

In the RenderMan side, PxrDisney was insufficient for a couple reasons:

  1. You couldn’t layer multiple PxrDisney Bxdfs (in fact the original paper was written specifically NOT to do that, you layer the inputs. Think layering in substance painter then importing maps to use in a single PxrDisney inputs). You’ll notice that PxrSurface and PxrLayer are very similar but PxrLayer can be layered together to feed into PxrSurface. In fact there was some work down by Will at MPC to do a similar thing with PxrDisney . https://renderman.pixar.com/forum/showthread.php?s=&threadid=35641&highlight=PxrDisney
  2. There was a lack of artisitic freedom of PxrDisney that PxrSurface has.

Personally, I think the “holy grail” would be have a simpler shader like Principled, with an “advanced mode” which switched it to something like PxrSurface (while maintaining the same look) for the users that want that control.

Read their documentation, talk about a settings overload when you add all of the artistic controls (perhaps a developer should start with the physical properties).

Also, it looks like their version does not use multiscattering yet for rough glossy and rough glass surfaces (look how dark their example gets), that may need to be a Cycles-specific addition again.

Principled Shader is a fresh addition. Pascal worked on it during years but it was just added in 2.79.
It followed Cycles evolution and will continue. Current work done tries to make it compatible with Eevee.
But it is a little too early to have strong opinions on its evolution. Blender users don’t have years of practice with it.

In blender internal, we have a material with all settings available. When Cycles arrived with only few shader nodes, people appreciated that simplicity.
Then, they started to complain about the need to build a nodetree , energy conservation and began to ask for an ubershader to mostly only receive textures.
Except lighting guys, few people would like to return to a complex node full of options.
Principled shader will evolve. But I am not sure that respect of energy conservation will stay at its level.
We can imagine an evolution of shader nodes in general, too. (different Add/Mix Shader, specific shaders with more options and new shaders)

Actually, 2.8 is on progress and work is done to think about Cycles interaction with new layer system and options that could be added as object properties rather than at passes or materials, shaders level.

Tell that PxrDisney is legacy…

Disney Principled was never a good solution for universal material creation solution. Older VrayMTL/CoronaMTL/Arch&Design model is still superior in many aspects to this day. With that said, the Principled one is at the very least grounded in some common sense, while the new one, PXRSurface is just completely bonkers. Things like energy conservation are in place so that artists can make a bad choices resulting on poor looking materials, and Disney seems to have taken a step back in this case, returning to old blinn/phong style workflows with point lights. I really hope this one will die even faster :slight_smile:

Just as a reminder, a very kind not official Blender developer (Pascal Schön) one day decided to devote his free time to research, study and develop the Disney shader for Blender. He did an excellent job and Blender took it. So the options were to have the shader as it is, or not to have it. And of course I choose to have it. I’m just grateful for that.

1 Like

I think we are fine. If you want a simple dielectric, metallic Material model, that can be used for 80% of real-world materials, you use Principled. If you want a more complex shader with stuff that the PxrSurface could do, you can still use a custom Node-Setup which is, in my Opinion, the more modern approach to shading than one extremely complex Node like PxrSurface (not that I don’t like PxrSurface). With Node-Groups, Cycles also offers an exclusive solution to building and sharing your own Uber-Shaders without coding, if you really want one.