"Principled v2" feedback/discussion thread

Best not to hardcode the name to “surface” since the plan is to add volume support:

the idea here is to implement basic volume controls (homogenous absorption, maybe also scattering) in the main Principled BSDF.

1 Like

I think the name is still fine, having users learn a different name and changing docs and tutorials over minor stuff like that is not worth it.

It’s still a principled model over physically based parameters. The addition of refraction IOR in both the updated Disney model and our current implementation already deviated from some of the strict rules, Also volume controls doesn’t mean it’s no longer a surface shader, many of the others like standard surface offer similar controls, and the subsurface scattering is already a volumetric effect.

6 Likes

Also, “Principled v2” should not need to be a name anywhere in the UI. This should just be an update to the Principled BSDF shader node, no new name needed.

13 Likes

Just tried build out now. Had some issues.

If both GPU and CPU are ticked in preferences, then GPU rendering in Cycles is greyed out.

If just GPU is ticked in prefs, Blender crashes immediately upon hitting render image. Tried in a few different scenes and all did the same.

Mac used = M1 Max 32 cores, 64gb ram.

@lukasstockner97:
Do you plan to add possibility to load complex fresnel nk data? Or maybe it’s already possible somehow?
Will clear coat have separate IOR control?
Does current “tint” option for clear coat work as “absorption” or absorption will be available with thin-film option?

Hello, I have loved this development, thank you very much I am happy.

I haven’t tried much the new system yet, but the first thing I noticed is:
In the link I shared there are 3 initially important nodes (Specular, Base color and Roughness) to add these 3 important textures, How could I use these textures (Specular) in the new system? Do I have to use a Mix of the Roughness and Specular Textures to connect them to the new Roughness?. I have that concern.

I’m going to try more on other engines to make comparisons. Thanks for: Energy conservation, Sheen, Sheen roughness, Metallic Edge, Metallic Falloff… They are amazing

Edit byThomas Dinges: Removed screenshot, see Copyright guidelines for devtalk

If you have a proper “Specular map” that is designed for the Specular value in the old Principled BSDF, then this is roughly how you’d use it with the new Principled BSDF v2:

2 Likes

He posted a screenshot of Unreal though, I am not sure what the specular map in that UE screenshot is doing. Looks like its alpha gets plugged to a specular input, the red channel gets plugged into roughness. This is rather weird.

This looks like the kind of Node setup that I’d love to see included in Blender or NodeWrangler as an instant node group that can be added directly. :sweat_smile:

1 Like

Look at it from another angle, this is what we used to need to do to get just the IOR right previously, now we no longer need to do that for IOR. Are you sure your specular map is the kind of specular? If it’s not, you can just invert it and use it as a roughness.

3 Likes

I wasn’t complaining about it … I just noticed that we sometimes do have rather elaborate node setups for conversions or standard setups like the Ctrl-T node setup in Node wrangler. This was more a general angle of “Blender should start shipping with node setup groups that might be used on more than one occasion”. It was more of a general note than specific to this kind of setup. Sorry … a little off topicish.

1 Like

Why on does it have metallic edge and metallic falloff? Why would there be a hardcoded gimmick for just a metallic mode, which is just a primitive falloff between facing and grazing color? By the same logic, we should have also diffuse edge and diffuse falloff, clearcoat tint edge and clearcoat tint falloff.

Hardcoding in random gimmicks should not be done for something as standardized as principled materials. There are such things as PBR texture sets and so on, which expect at least some standard to be displayed and rendered correctly between software (Let’s say between Blender and Unreal Engine for example). This can’t be taken so lightly.

It doesn’t make sense to do it for a Principled material, where some standard is required, and it especially makes no sense to hardcode random gimmicks in such a flexible environment as node based material editor, where user are free to very quickly put together any effects they want.

This is red metallic edge with falloff of 0.5:

This is the same gimmick recreated using just a few nodes:


The result is absolutely identical and it’s trivial to set up

And it can then be nodegrouped for convenient reuse:


Which would also not be restricted just to a base color slot and just to a metallic component.

It’s pointless to have that built in, because now Blender no longer has a reliable, standardized Principled shader but instead has some gimmicky version which is lot more involved to set up. Considering how incredibly trivial it is to set up, it doesn’t justify two new UI elements in the BSDF itself, which don’t add any true new flexibility.

Here’s and example:
The metallic falloff defaults to 0.2!:

Previously, when I wanted to set up golden material, the following steps needed to be taken:

  • Set metallic to 1.0
  • Reduce roughness
  • Set base color to golden color

Now, with the gimmick, there’s one additional step user need to know and be aware of to have their material set up correctly

  • Set metallic to 1.0
  • Reduce roughness
  • Set base color to golden color
  • Set metallic falloff to 0.0 so that the metallic edge color does not interfere with the base color

This can be all the more destructive when bringing in a PBR texture set, let’s say from a Megascan asset. Before, you’d just plug all the maps in, and get the correct result. Now, you won’t get the correct result until you also set the metallic falloff to 0, otherwise the default metallic edge color will interfere with the base metallic color specified on the texture at grazing angle. Artist should be able to introduce that if they will, but it should not happen uncontrollably by default.

I am against hardcoding gimmicks which can be simply replicated by the input shading nodes, but if it’s there to stay, then at the very least the metallic falloff value should default to 0.0, so out of the box, users get the result expected from an average Principled material.

Also, is the diffuse translucency done yet? I am not seeing any obvious way to set it up (paper, thin fabric, leaves, grass, etc…)

8 Likes

Standard Surface and PxrSurface have similar metallic controls. It’s an an artist friendly parametrization of complex IOR, which a pretty standard feature for metallic materials, but not diffuse or clearcoat. MaterialX also supports complex IOR as part of the closure. Compatibility with those kinds of shaders is important, not just simpler game engine shaders.

I think there is a difference in handling it at the microfacet level even if can be slight. And in the context of bidirectional path tracing, any shader node setup involving the view direction is also problematic, if we ever implement that.

We intended Principled Surface to become more complete surface shader, where users can tweak parameters rather having to use more complicated node setup. Having this parameter available is easier to learn than a separate edge color node setup. Having it as part of the node also makes presets and texturing easier.

Probably the default falloff could be changed to 0.

22 Likes

Hello,
is there any way to control transmission color independently from the Base Color channel with the new shader? Apologies in advance, if I am missing something simple here.

Not sure what you mean, AFAIK base color no longer controls transmission color, the “correct” way to do glass or water color is with volume shaders, the unphysical way that works sort of like before is to use the clearcoat tint, it works well in my test.

Thank you @Eary I didn’t know one was supposed to use volume color to affect transmission of water or glass materials, this surely makes sense. I will try the trick with Clearcoat Tint, you have mentioned.

which volume node am I supposed to use?
also, isn’t it specular tint rather than clearcoat?

Note we are talking about the Principled V2 here, in v2 the “specular” (which is just another IOR) has been merged to the IOR setting as it should be, and clearcoat tint becomes a proper color input. The legacy specular tint was a very subtle tinting using the base color, very subtle to the degree that I think most people would ignore the setting.

What I meant by using clearcoat tint:

I personally use Principled Volume more, for most cases you would want to have some absorption so thicker parts will have thicker tints:

You can turn up the scattering a little if you want, depends on your use case.

Note you might need to turn up the volume bounces a bit to see ideal result (hope the default can be higher at some point, current default is 0):
image

I hope this comes soon, for not only convenience, but also discoverability, as there are many users out there still not aware the approach of using volumes for glass and water color.

5 Likes

is the absorption color for principled volume part of principled V2?

Not yet, but I think it’s planned.