"Principled v2" feedback/discussion thread

Ok, my apologies. Your explanation clarified it very well.
I mixed conservation/preservation and unintentionally hacked the thread :sweat_smile:

to conserve or to preserve are the same. Either way, E_out should be the same as E_in (except for whatever is absorbed due to your objects’ color).
You can most easily test for energy loss by maxing out roughness (technically you are best served with a diffuse shader in that case, but ideally GGX would sorta fall into looking diffuse by that time)
GGX will have a lot of energy loss whereas mGGX will not.

Another very good test for both energy loss and energy creation is the Furnace Test where you put a perfectly white (RGB = 111) sphere into a world that is a uniform white emitter (also RGB = 111). Ideally, your object should be invisible. If it’s darker, you are losing energy, if it’s brighter, you are gaining too much. This test should be relatively easy to do and pretty clear also for roughnesses below 1.

This should show you both the correctly handled Fresnel in PV2 and the difference that multiscattering makes for GGX

@lukasstockner97
I think keeping physically correct (saturation increase) result is reasonable especially when material relies heavily on roughness map and there are big differences in roughness values. In such cases lack of saturation increase will be very visible.
For example how to create “physically correct” plant leafs without principled node?

1 Like

Does anyone know when Principled V2 will land in the Blender 4 alpha builds? Very much looking forward to that.

12 Likes

A patch for the new sheen has been made.

Personally i hope LTC-based gets chosen, it just looks the nicest IMO.

9 Likes

I’m very biased, but I also hope the LTC sheen will make it in :upside_down_face:

9 Likes

Hi everyone,

time for an update here :slight_smile: If you’ve been following this topic, you’ve probably noticed that it’s been a while. Sorry about that, this project got delayed a lot for a while, but if you’ve been following the weekly reports you might have noticed that things are moving again.

Instead of working in the principled-v2 branch, which had ballooned into a massive changeset and would have grown even larger, the new approach is to do development in the main branch in chunks. Through the previous work in the branch, the overall direction and plan for the new Principled node is clear enough that we can do it this way instead of constantly going back and tweaking previous changes.

So far, a lot of the changes that have already been merged concern internals - the two big items being the overhaul of the Fresnel handling (not really noticeable from a user perspective, but a BIG step forward in terms of maintainability and extensibility of the code) and the Multiscatter GGX replacement.

There are two more items that can be done “standalone”: The new sheen model and the new metallic model.
The WIP PR for the Sheen BSDF has already been linked above, and it’d be great if you could try it out (builds are here, the new models are in the Velvet BSDF node) and leave feedback here on which model you prefer (so far, everyone seems to be leaning towards LTC).
The next step from my side will be adding a Metallic BSDF node that works like the Glossy BSDF, but adds metallic Fresnel support (using physical N/K values or the F82-tint model from the Adobe Standard Material). Actually, it might make sense to have this as an enum in the Glossy BSDF instead (e.g. “Direct Color”, “Conductor” or “Metallic”).

After that comes the real Principled v2. In the previous branch, it was an option in the Principled BSDF node, but I think that with some versioning code, we can keep compatibility decent enough to just change the existing node instead of having a second option, especially since this is going into Blender 4.0. This way, we don’t have to keep maintaining both versions, and there’s no confusion regarding which one to use.
For this, the steps as I currently see them are:

  • Breaking changes:
    • Specular/Fresnel rework: Move Specular from a primary input to a “artistic tweak” input - the proper way to control intensity of reflections will be IOR.
      • For existing files, this will either be converted directly (if the material isn’t using transmission and has a fixed Specular value) or nodes will be added to convert the Specular input to the new setup
      • The model will work similar to glTF: IOR is the primary control, then there’s one additional non-physical tweak input to control the highlight color, and another one to control intensity.
      • This will also allow using Spec/Gloss PBR textures properly
    • Sheen replacement
      • Based on feedback (see above), the sheen component will be replaced
      • This means adding a Sheen Roughness input and changing Sheen Tint to be a color input
      • I’ll try to convert old materials with sheen decently, but no guarantees since the old model is so different
    • Subsurface changes
      • Subsurface Color will be merged into Base Color, since that’s all it ever did internally
      • The Subsurface input will be renamed to Subsurface Scale and changed to no longer appear as a factor input (since it’s not)
    • Energy-conserving layer stacking
  • Non-breaking changes (can be done later, since they don’t affect existing files)
    • Metallic control
    • Transmission Depth (for realistic Glass coloring)
    • Transmission Shadow (aka "architectural glass’)
    • Clearcoat Tint
    • Non-physical tweak controls
    • Thin Sheet mode
    • Thin Film iridescence

None of the breaking changes should be particularly complex, so expect them (at least as a WIP PR) in the next week or two.

58 Likes

Hi Lukas thanks for the heads-up.
IIRC there were also talks about some refresh in the nodes UI, regarding big nodes as new Principled is gonna become. Stuff like collapsable sections, checkmarks to enable features maybe, and so on.
Anything to tell about this as of now?

3 Likes

Lukas Tönne is working on collpasible panels in nodes : #109135 - New data structures for node group interface declaration - blender - Blender Projects

4 Likes

Hi @lukasstockner97. Impressive works here you did already. I have a questions related on Velvet BSDF: is it possible to add presets for fabric-like surfaces for more easy-to-use and artist-friendly as Silk, Denim, Fur, Wool or something else from Real Life values into Velvet BSDF shader?
Thanks.

1 Like

Thank you sir!
20chars

I read those comments but didnt understand what exactly do that?

I thankyousired @Hadriscus for his answer (2 posts earlier) and added “20chars” to fullfill the required minimum 20 characters policy for posting here on the forum.

1 Like

As @Hadriscus mentioned, there’s work going on for that on the Geometry Nodes side. I’ve not been actively involved with that (yet) - there are some differences in goals (they’re mostly focused on user-built node groups from what I understand), but it should be possible to share the logic.

As far as I know, the overall plan is to handle material presets through the asset management system.

3 Likes

Are you mean there are no plans to investigate enum presets into shader itself?

Indeed, there are no plans for that. But we do want to bundle a material asset library with Blender at some point.

6 Likes

As of what we have now, having presets would be as easy, shareable and reusable as this:


on the left there’s the content of the “Velvet presests” nodegroup, nodes are not even needed!

8 Likes

What does mean this?

We want = developers plan to
Bundle = ship with Blender
A material asset library = presets, but in the form of Blender assets
At some point = in the future, undefined

11 Likes

Thank you. Now I understand

3 Likes