"Principled v2" feedback/discussion thread

The build was not yet updated when I wrote my comment. It is there now.

Ah ok, got it. I’ve done some initial testing and seems to work pretty predictably. It solves the issues of a user opening a file with Spec (now IOR Level) set to zero and still have reflections at glancing angles.
So if I understand, 0.5 as the default value just leaves the Fresnel curve exactly as-is, as configured by the IOR (say 1.52), so they would have F0 reflections at about 4.25%, and decreasing IOR Level internally is lower the IOR value progressively until it reaches 1.0 for a diffuse only surface. I’m curious though as a very low IOR like 1.1 would still drive F90 to 100% (a very thin sliver of it), does it just then jump F90 to zero by specifying IOR level to 0? Most users probably won’t about this but I’m just curious how that jump happens.

Glad to finally see this mostly completed after a year!

I know this is diving into feature requests, but with the emphasis on tinting with PV2, how about a way to tint the coat highlight/specular?

Technically F90 is always 1.0, the range in which it gets hit just gets narrower.

Here’s a plot of dielectric Fresnel reflectivity for various IORs (note the nonlinear X axis):

They all go to 1.0 eventually, but for low IORs you need a VERY shallow angle.

And since I already have Gnuplot set up, here’s the same graph using the Schlick Fresnel approximation, which is very widely used, especially in realtime engines:

Note how it works well for “normal” IORs, and gets the same F0, but the behavior at high angles is completely wrong at low IORs (as you might e.g. get for nested dielectrics, or when putting the IOR adjust near zero of course). Therefore, a renderer that parametrizes purely in terms of F0 and F90 won’t get the smooth transition to diffuse.

Hm, it could be done, but the main difference between the main specular layer and the coat already is that the main specular layer gets tinted by the coat. Making the coat also tintable seems somewhat redundant. Of course there will be cases where it is useful, but that could be said for many options.

5 Likes

I just want to remember that only metallic surfaces can reflect colors.Dielectrics as usally coating is,can only reflect white color.
The only reason for a tinting color would be the absorbing color in a coating layer as example,but not the reflecting color.

2 Likes

All these new features and changes make the new Principled better and better every day. I love it!

The one thing that still bugs me is that none of the values have a proper default set. So if I want to quickly reset something by pressing the backspace key, I get 0.0 or black (which is useless).
While the whole interface of the Principled is getting a revamp, I hope that this gets fixed too.

12 Likes

Reality is one thing, artistic rendering is another

That is a known issue for all node editors in general. Defaults are not working there

Sure,but what if you want to tint the clear coat a bit yellow like a thick old clearcoat layer?Then the absorption tint makes the most sence with the correct white reflection.

Otherwise you would tint the reflection as well,thats NPR.

The specular layer is already tintable, which you said is a property of metals. Since we’re already in NPR territory, why not let the user tint the clearcoat reflection as well ? it sounds like it could be useful.

I know (it’s a problem all over Blender) and now that the UI gets an overhaul I hoped that this could get fixed at least for the most complex shader that everybody uses most of the time.
I would even be willing to volunteer to enter the default values in all the source files, if I only knew where.
This should be low hanging fruit even for a non-coder like me.

I noticed that 3rd party addons like e.g. Octane have proper defaults, so it can’t be a problem that can’t be solved.

3 Likes

I agree. It always happens to me that when adding a bump node, for example, the default values are so high that they are unusable (Strength: 1, Distance: 1). It would be a good change and would save time.

2 Likes

Hi there, I am maintaining the io_scene_3ds addon and have a question regarding specularity. In 3ds the definition is specular color but this was not available in principled bsdf so I choosed specular as channel for the specular color texture. Now since specular tint is a color my question is, if it will also support mapping textures like the specular IOR level. the 3ds IO uses node_shader_utils, will specular tint texture be included in future?

2 Likes

I added it now:

2 Likes

Thanks for the quick commit, the 3ds script now also got the update:
io_scene_3ds: Moved specular color texture to specular tint

Yes you can tint the specular.If you use the coat layer as well,you could as sayed before color the absorption of the clearcoat layer but keep the white reflections.
Additional if reflections on the surface underneath the clearcoat is appearing to white and you want to fit the specular to the absorptive coating layer,then the specular tint could make sence.

I guess most artist would use a clearcoat with white reflection,and i think the idea was to use the tint as absorption color.

Btw you can mask which specular tint you want and where,like in this simple example.

When will hin Film Thickness be added?

2 Likes

In the most recent build, Transmission was moved from the “entry level” inputs to a Transmission subpanel. While I can imagine this was done for other future options to be put under a transmission “umbrella”, I think it’s such a common material property that it was good to have it visible in the top main properties, rather than in a subpanel where now it’s the only input.

1 Like

I guess there soon will be additional transmission features like “Nested Dielectrics”, “Thin Walled”, “Fake Shadows” or “Dispersion” (just wild guesses) added and they might land there.

4 Likes

Yeah I guessed the same. Maybe, as the Specular subpanel has more technical options but roughness is exposed on top, could be the same with transmission.