"Principled v2" feedback/discussion thread

I think its better to have it dropdown because it make it so long and I didnt really like the exposed radius . If someone use princpled bsdf fully with all the collapsable layers open, it make it extra long, plus the collapsable headers make it also longer, so radius should be either like the old way with dropdown or its better to make it a color input by keeping the naming radius, so it will be easy to use without dropdown and it wont occupy space, just because we have collapsable headers, doesnt mean we should use it excessively to make things longer vertically, we still should try to keep them compact as much as possible for future addition of new functions, not everyone wanna use princpled bsdf by always playing with collapsable panels, sometimes they wanna see the big picture or screenshot it or wanna compare 2 princpled bsdf by exposing all the panels, so ı think if radius will be exposed, it should be horizontally aligned 3 boxes or it should stay as dropdown or it should preferably for me become a color input.

I’m not going to comment on everything because I do not have the authority or knowledge to answer everything. But I will answer what I can.


This is more of a node panels design question than a Principled BSDF v2 question. This should probably happen somewhere else. But a thread for panels hasn’t been made yet.


All the Specular settings still work when using Subsurface scattering. This is because the Specular layer is applied on top of the diffuse/subsurface base layer.


One of the desired goals for the Principled BSDF is to add support for a “Thin sheet” mode so materials like leaves can easily be created. This may cover your use case once it’s implemented.

Here is the design task for the the Principled BSDF: https://projects.blender.org/blender/blender/issues/99447

Both are physically correct. They just do different things, one is a blend weight with other components, and the other is a scale factor on the radius. In the latest version the first is called Weight, and the Scale input was moved after the Radius, which I think clarifies things a bit. There are also tooltips.

The scattering distances are not limited to the 0…1 range. Sometimes they might be bigger, sometimes near zero. For that reason I don’t think it’s correct to represent them as a color.

This is on the to do list, but there is no concrete plan for when it would be implemented.

It’s something that needs to be solved by a developer, it’s a technical issue with the way sockets are defined without being RNA properties.

Without this there will be “Transmission Weight” input which is inconsistent with the other Weight inputs which are in panels. Since it will move there eventually I prefer it in a panel.

I don’t much like the current alignment, but personally I don’t think moving other text to the right looks good either. The additional spacing looks off to me, especially for nodes that don’t use panels.

Perhaps this should become consistent with the properties edit with the text outside the button, but that also looks rather busy and requires nodes to be wider.

We decided against adding compatibility options like this, and instead have a single more unified layering system.

I don’t think this should be done, the additional UI complexity does not seem worth it. You gain space in common cases, and lose some space in rare case, I think that’s reasonable.

2 Likes

The latest beta of 4.0 has a new entry for SSS, ‘Random Walk (Skin)’. I’ve been searching for some info on the difference between this and regular Random Walk but haven’t found any. Is there a developer notes about this and its difference to the regular Random Walk?

Here are the differences I could find from the looking at the code.

  • Random Walk uses the standard IOR input while Random Walk (Skin) uses the Subsurface IOR. I suspect this allows the “flesh” of the creature to have different IOR properties from the “top layer” of the creature.
  • Random Walk sets the entry roughness to the roughness in the node. Random Walk (Skin) sets the entry roughness to 1. This is to simulate the effect of the ray passing through layers of rough dead skin.
  • Random Walk only does GGX refraction when entering a material. Random Walk (Skin) has a 50/50 split between Diffuse lambertian transmission and GGX refraction when entering a material. Apparently without the Diffuse lambertian transmission mix, light penetrates too deep to replicate real life human skin.
  • With Random Walk (Skin), the radius is adjusted based on the IOR and Albedo. With Random Walk, this is not the case.

These features unique to Random Walk (Skin) are just approximations to try and replicate some of the complex multilayered scatting found in human skin/flesh.

5 Likes

Would it be possible for someone to eventually implement the old cycles/principled BSDF as a different addon seeing as how Cycles is an addon?

Great info, thank you.


Naming the radius vector values would help users understand what they mean.
Is there any reason why these radiuses are a vector, rather than three float values?
Also, wouldn’t it make sense to rename “Scale” to “Radius Size” or just “Radius”? And then then “Radius” to “Radius Scale”.
The word “Scale” means a percentage (relative), and “Radius” or “Size” as a direct measurement (a constant). So, currently, this is backward.

Fix:

1 Like

I think describing in the tooltip that the scale of the radius is the max scatter depth of the SSS and its RGB radius values,would be enough.

Aren’t the RGB values scaling that radius?
Like, you can put in higher values than 1, so if you put in 2, the 5 cm radius turns to 10 cm radius for that particular color.

I guess the Radius is just a multiplier of the RGB values.

Yeah, they multiply.
The RGB values are relatively SCALING that RADIUS.
So the labels are backward.

I think while valid, that’s the opposite logic of what’s usually applied: The scale parameter defines the overall scale, i.e. what the meaning of “1” is. It basically converts a meaningless set of numbers into one that has a meaningful unit attached. It’s the thing that defines the distance of the ticks on a ruler.

1 Like

What determines the ticks on the ruler is Units. And it is measured in real units of the metric system (or other)

If we kept the labels, only this would make sense:

1 Like

You can get rulers with any spacing (though usually either metric or imperial, and some have both), and that spacing is the scale. It’s a completely arbitrary choice.
SI Units are a particular such choice. There is no fundamental reason why those are the only valid units.
And the scale parameter allows you to tweak that choice freely.

The reason you want that is, that it’s usually not very useful to talk about sub surface scattering strength in terms of meters. The relevant scales are typically much smaller. And also depend on the scale of your scene.

And the scale is above the radius because it’s the overall setting. It makes more sense to have it first. - Just like it makes sense to have master volume before more specific volume knobs. Also, it needs to have the units. That’s the whole point of scale.

“Radius” is a direct measurement, in whatever unit system, not something relative to a measurement in that unit system.
And the word “Scale” describes how big or small that radius is represented.
Scale is not measured in meters. It’s measured in percentage or a fraction.
This is just how these words are used in the english language…

You don’t ever call the Scale of a map in meters. You say that the scale is “1:100” for example. But you will refer to the size of the map as “A0 paper size”

All measurements always are relative to something. Like, a ruler that can measure millimeters basically measures in per mille of the reference length defined in the SI standard. Before they shifted to a speed of light based standard, it was basically a well-calibrated, carefully measured stick in some vault.
Knowing what stuff is relative to is how numbers obtain concrete meaning. And that is typically called the scale.

The radius is measured relative to the scale you define.

If radius was a relative value, it wouldn’t be measured in meters. We know what a meter is. It is strictly defined constant.

The radius is measured relative to the meter.
If you have a radius of half a meter, it means that radius is 50% of the reference length called a meter.
If you have a radius of two meters, it means it’s 200% that length.

0.5 and 2 here are the values relative to the scale of a normed meter stick.

If you go for a centimeter stick instead, the values will read as 50 and 200. The length is the same, the scale and values have changed.

Even different scales are relative to each other. For instance, the centimeter stick fits into the meter stick 100 times. You can convert between units. And that’s also where map scales come into play: If it’s a 1:100 map, that means a real meter appears like 1cm.
That’s a slightly different notion of scale though.

The whole point is, that the radius can be relative to some scale which in turn might be relative to the scene scale which itself determines what 1BU means.

By default, the scene scale is 1BU = 1m but you can also set it to anything else.
The SSS scale parameter allows you to separately define at what scale that material is supposed to operate.

This is useful, for instance, if you want to match some real life measured radii. The dataset is going to be in some sort of unit, likely not in meters (as a meter is way too large a step for these measurements, unless we are talking atmospheric scattering in which case meters are likely too small instead)

You can then pick the scale found in that dataset and directly put in the values in the radius and no matter how you change the scene scale, it’s going to be the right result.

If you have a radius of 50cm, it is a strict distance, as “meter” is a constant, but you can say that the scale of this distance is half of what a meter is. Still, if a value is called “Scale” you cannot have a constant value (such as meters) in it.
I’ll leave it at that. Let’s not flood this thread.