"Principled v2" feedback/discussion thread

First of all, sorry for not paying attention to this thread :sweat_smile:

Regarding the Panel UI discussion: Yeah, there’s still room for improvement. As far as I know, there’s still work planned on this, but I don’t really know enough about the UI area to contribute much there.

Good point, thanks for catching that!

To address it, there’s actually two options, and I’m not sure which one is better:

  1. Use versioning: Detect any Principled BSDF nodes with fixed (non-connected) Specular and Transmission=0, compute the corresponding adjusted IOR, set the IOR input to that, and reset Specular to 0.5. For the example case of Specular=0, this would result in an IOR of 1.0 regardless of what the original IOR was.
  2. Implement the Specular input as an IOR adjustment, not as a F0 multiplier: In the original 3.6 code, the specular reflection component completely ignored the IOR input, and instead computed its own IOR based on the Specular input. In the current 4.0 code, it uses the IOR input, but tweaks F0 based on the Specular input. Instead, we could do what e.g. OpenPBR does: Compute an adjusted IOR based on both the IOR and the Specular input, and then use that for both specular and transmission. That would naturally result in the shader using IOR 1.0 if Specular=0, it would be compliant with OpenPBR, and it would integrate nicely with e.g. the Nested Dielectrics in the future. The downside is that the Specular slider would affect refraction, which might be unintuitive.

I’m leaning towards 2), especially since we should rename the Specular input anyways to reduce confusion, so we could make it clear that this is just a legacy/alternative way to tweak IOR.

Any opinions?

Also, side note: Depending on the material, a more realistic approach to get rid of the specular highlight might be to just turn the roughness up to 1.0.

EDIT: Actually, here’s a PR for approach 2), seems to work nicely: #112552 - Cycles/EEVEE: Change Specular input on Principled BSDF to affect IOR - blender - Blender Projects

10 Likes