"Principled v2" feedback/discussion thread

From my understanding, Lukas Stocker is planning to add thin film support to metals before the Principled v2 branch gets merged with master.

7 Likes

Thank you for the information. Let’s hope it works out, because we need this software become even greater than it already is.

1 Like

Hello!

I’m new here, so please forgive me if this isn’t the right place to ask this question. I noticed that Principled v2 is using Conty 2017 for the sheen component. One major drawback of Conty 2017 is that it doesn’t capture backward scattering in sheen at all; is there any willingness to consider the volumetric sheen modeled published by Zeltner et al at SIGGRAPH 2022 instead? The Zeltner 2022 model properly captures both forward and backward scattering in sheen.

Paper/talk/reference code here: Practical Multiple-Scattering Sheen Using Linearly Transformed Cosines

15 Likes

Thanks for the info. Looks great. The Zeltner et al model would make the sheen more suitable for very fine fur effects as well.

1 Like

Just seen the BCon presentation and at first i would like to thank you for your work and for the talk, it’s always very interesting to get developers insight :slight_smile:

About the sss radius value and the diffuse component, is the model switches to sss as soon as we put >0 value in the radius or does it take in acount the distance to the camera to estimate if the radius is smaller than a pixel and fallback to a simpler diffuse model?

1 Like

When I switch to Principled V2 (from a previous GGX set up shader), if it has nodes assigned to Specular (for instance a bitmap to subtly change reflection intensity), those simply disconnect. How do we achieve a similar effect now that the IOR controls reflection intensity?

Many exciting things happening here :slight_smile:

I was playing around with a white furnace test, and it seems like clearcoat roughness above 0 still loses energy?

2 Likes

Hello there!

wanted to ask where I can get the latest version of the Principled BSDF v2
it seems to me that the link is dead…?

Thanks for the replies in advance!

See the message I’ve quoted below.

1 Like

Yikes, that’s not too user friendly. I’m hoping there’s going to be some transition mechanism that us average users will be able to use.

You can find it in the branch builds archive list.

1 Like

I suppose compatibility code could take care of the conversion

Hi, time for an update after a while!

I’ve been working on a bunch of topics (thin film for metals, thin sheet mode, nested dielectrics, bug fixing etc.), most of which isn’t ready for sharing yet.

However, I’ve just pushed a new version of the branch that contains an initial version of Node sections, a way to clean up the interface a bit.
Here’s an example:


Currently I’ve only added sections to the Principled BSDF node, but it could be done for any builtin node.
Also, you can add sections to custom Node Groups and assign sockets to them.

And here’s a bunch of answers to posts from above:

Should be fixed now.

Not currently, let’s see if the thin sheet mode might help.

Yeah, known issue, I tried to find it but no luck so far…

Noise is still a TODO, I haven’t fixed the importance sampling weights yet.

Yeah, this is still an open question. I’ve currently hardcoded the XYZ->sRGB matrix for initial testing, which is obviously not good enough for the final version.
XYZ to Scene Linear is the easy part, the tricky part is the illuminant.
As far as I can tell, OCIO assumes that you’re transforming light values, not reflectivities. I’m not sure if there’s a correct way to do that with OCIO. A basic attempt might be to transform (1,1,1) from XYZ to Scene Linear and then divide the result by that?

Thanks, I’ve committed it.

Yeah, translucency is not 100% clear yet. All those examples sound like cases for the thin sheet mode, but I guess the difference is how much scattering happens inside the sheet before the exit bounce.

Looks very interesting, thanks for the link! I’ve started working on a implementation of that, will update once it’s ready for sharing. One downside would be that glTF uses the Conty model, but at least the parametrization is the same…

Good point, I’m not sure actually. I’ll have a look.

For a similar effect, adjust the IOR. To use the same input (as in, the same 0…1 range), there’ll be an additional input in the non-physical section to tweak specular strength.

37 Likes

Oh cool. I went to the Branch section of Blender’s experimental download area, and I’m not seeing an updated build.

Regarding adjusting the IOR for variable surface reflectance, how does a bitmap’s greyscale range map here given that an IOR can be 1.0 to something much higher, with typical ranges being from 1.3 to 2.4 or thereabouts?

2 Likes

Are there any plans to add a micro roughness effect to the glossy component (like Thea render has)?

1 Like

Yeah, that would be really nice. Right now we can do that by adding a small node setup that changes roughness with incidence, either via a linear ‘facing’ angle approach or via the fresnel curve. But it would be nice to have it integrated as a function.

Where do i download the last build?

1 Like

The latest Principled V2 build can be found here, but it is still the October 31st version, so let’s hope Lukas will upload a new build soon. :pray::stars: Until then our lives won’t be complete. :cry:

A feature request, if you do not mind:
It would make sense for the principled shader to have a more straightforward approach to normal/bump mapping: You could just connect a normal map texture directly and it would just work. No nodes required between the principled shader and the texture node.

Perhaps, the best way to do this is to add a three-way switch to this principle shader, that changes how the “Normal” input is interpreted.

:diamonds: “Normal map” (default, as it’s most common), the input gets named “Normal map”, becomes yellow, and it gives you similar controls from the “Normal map” node.
:diamonds: “Normal”. Blue. Works as it does now.
:diamonds: “Bump map”. Gives similar inputs/controls of the “Bump” node.

Would something like this be ok? What do you think?

Sidenote: Why does the “Normal map” node have a UV map selection option? The UVs are already set in the Texture node, so this is redundant.

2 Likes

Could there be a possibility of having the collapsed rows still maintain function?

As in: Clearcoat when collapsed still functions as the intensity slider. Same as Specular etc.

The drop-down arrow would then show the extra options if clicked on. It could be inside the slide next to the name to maintain the design.

This way you could shrink the big node and still maintain the slide controls on the most important and used parts of the node. And also have access to the node inputs.

Also: The node round inputs could appear tightly stacked when collapsed to further indicate where things are connected even when collapsed.

2 Likes