"Principled v2" feedback/discussion thread

Since you’re using the roughness parameter primarly for the transmission, AND the coat layer as the old specular, you should lower the specular layer down to 0 in order to avoid that glow around the coat reflection.

1 Like

Replying to myself:
nope, once you set transmission, the specular layer seems to have no effect anymore

1 Like

If you do a comparison between 3.6 and 4.1 for transmission, you need to enable Multiscatter GGX in 3.6 otherwise you’re comparing apples to oranges. But I agree, I would love a proper transmission roughness function to come back.

But Multiscatter GGX does not allow for transmission roughness, it’s an unfortunate concession that had to be made for the comparison.

1 Like

I’ve made a comparison of several ways to get “foggy” glass, for comparison.


Adding a volume shader to the interior of the glass object is the physically correct way to model a piece of glass with a foggy interior. It is quite expensive, however, even with homogeneous volumes turned on.


You can actually get clearcoat to look pretty similar to the volumetric approach, but it’s actually just ‘frosted’ (rough) glass with a clear coat on top.


Finally, here’s a very rudimentary node-based emulation of a glass material with mismatched roughness between the glossy and refractive portions. You can see very clear energy loss in areas, because there are bits that should exhibit total internal reflection, but don’t due to the mismatched glossy/fresnel term.

7 Likes

Would you mind sharing the setup for that last image?

It is a variation of your shader.
Instead of volume absorption, I used volume scatter.

4 Likes

Sure! Here’s a somewhat fleshed out version:

In this version, there will be energy loss due to the misaligned roughness whenever a ray enters the glass, but due to using a glass BSDF for back faces, energy is preserved during total internal reflections.

5 Likes

It’s been many months since Principled V2 got released. Where is thin translucency? Majority of outdoor scenes have some sort of foliage, and indoor scenes have also many thin translucent materials, like paper, curtain fabric, etc…

Why do we have a new material that still can’t model large amount of very commonly used materials?

Feel free to offer code contributions. I’d like that feature as well.

I’m not sure if production is still going on actually .

I think thin-film improvements are actively being worked on in the OpenPBR spec. Given the Principled BSDF is based on that model, perhaps the devs are waiting on those improvements before implementing anything?

If you look at who opened the first of the issues this draft PR is meant to address, you might see a familiar name…

1 Like

Thin film, nested IOR and blue noise sampling among things are actively being worked on.

2 Likes

Alive and kicking!

1 Like

This are the PRs of the last two links.

2 Likes

Nested IOR is huge - finally we’ll actually be able to render something as basic as a liquid in a glass correctly. Been asking for that for a looong time.
Blue Noise is also very good, nice to see

5 Likes

I think you’ve gotten confused. @LudvikKoutny was asking about the “thin walled” mode which allows users to easily mimic thin objects without modeling both sides of the object. For example, a leaf or piece of paper using a single plane rather than a very thin cube. https://academysoftwarefoundation.github.io/OpenPBR/#model/thin-walledcase

While “thin film” refers to thin film interference, where light bouncing off the top and bottom layer of a thin film of some material interfere with each other to produce different colours (E.G. The effect that gives bubbles their rainbow reflections)

Thin film interference is actively being worked on. As for the thin walled mode, I haven’t seen any developement on that.

7 Likes

Ah, yeah. I had confused myself. Too many “thin” things. Thanks for setting me straight.

fwiw I should be relatively simple to add a checkmark in the transmission tab to Principled to change to thin refraction. It has been talked about before.
It amounts to putting the IoR of a surface to the same value on both sides, rather than taking the reciprocal for the backside.
So as a first approximation, you can fairly simply do this yourself like so:

Regular (note all this does with the node muted is set the IOR to a constant 1.5)

Thin:

Regular:

Thin:

That said, this is not perfect. It doesn’t consider the rest of the shader stack built into Principled, for instance.
A full support of the feature might even involve separate two-sided handling, so you could, for instance, make a “thin” glass pane, where just one side of it is smudged with finger prints or whatever. That’d amount to a coat that’s applied based on backsidedness with a slightly different IOR from the glass and some small amount of roughness or something.
I think merely doing this IOR inversion as above would not correctly handle such issues. I’m not entirely sure though.

Like, what would the thin refraction version of this be?

(I only added the volume absorption for making the coat more visible - obviously that can’t quite be a thing in an infinitely thin sheet of glass. To correctly account for thin film absorption, that’s where thin film dispersion would come into play)

1 Like

That solution still introduces refraction when looking at a single-sided glass pane.
I think everyone is referring to something a little closer to this with thin translucency:


Notice how the surface of the plane doesn’t displace the background, even though we are looking at it from an angle.
Here’s the node group I’m using for this effect:

A similar thing can be achieved with thin subsurface scattering using a mixture of the diffuse and translucent shaders, but that too is pretty complex. Something I’ve struggled with in terms of creating a more complete thin Principled node group is calculating the opacity of the Sheen layer. I can’t seem to make it match the output of the Principled shader.