Principled BSDF Emission Strength: Feedback wanted!
My patch to add emission strength to the Principled BSDF is complete and should be ready to land. developer.blender.org/D4971
However there is one point of contention I would like to get community feedback on as this can affect addon compatibility.
Many addons work under the assumption that whatever is plugged into the emission color is the final emission value. With the addition of the strength value this is no longer the case. Thus an outdated exporter might read a value of white but a strength of 0 as pure emission, or an importer might set up the color but not assign the strength.
Currently the patch changes the defaults for the Principled BSDF to: Emission Color: White, Strength: 0. (old files are set to 1 if emissive) This follows the same conventions as every other shader with emission. However this will be the most incompatible approach to addons currently using the principled shader emission socket. Thus, the comunity is going to have to contribute to updating old addons.
A proposed compromise (at least for a while) is to revert the defaults back to: Emission Color: Black, Strength: 1. This will alleviate emission incompatibility with old importers (not completely solved for exporters as strength will still be overlooked) but introduces in my opinion what I see as a UX Paper Cut.
Personally I would like to see the defaults changed but this decision affects more than just myself.
So I want to get more feedback as to what the comunity thinks is the better approach. Hopefully this involvement will also get the push to add the patch as well. Please leave your (polite) feedback in the comments or especially on the thread for the patch.
Thank You!
11 Comments
It is indeed a tough decision. Thought a bit about it and believe the best implementation would be to use "Emission Color: Black, Strength: 1". I'll try to explain why.
The principled BSDF shader is basically meant to be a shader to accomodate plug-and-play textures for any PBR texture set. People coming from any pipeline/previous software knowledge should be able to see it and know where to plug the textures for a quick test. While the controls are many the defaults are fine for most cases. Having to tweak an additional value just to make a texture work can easily get tedious,
White, Strength: 1 is the default in emission for the same reason, the node should work out of the box.
White, Strength: 0 is the default in principled Volume because quick tweaking of the color while having (ie) the flame attribute connected to the strength is a standard thing to do.
It may seem weird to think that every material will have an emission strength of 1 by default, but the issue here is the naming. Basically the strength is a multiplier of the emission color, so a value of 1 is neutral. I'm not suggesting renaming it to "Emission Strength Multiplier" (it barely fits), but maybe the hover tip could say so.
* @rex_kungolos * Excellent points!!! I think I would feel much more comfortable settling on this explanation! Would like to hear some others thoughts first.
But you know what kind of stings?... This was the same thing as the first implementation back in 2019... Then someone asked to change it... Then I fell into a rut... It could have been merged in 2.81 if not for that painful detour... Oh well... 🙃
* @rex_kungolos * I agree, black and Strength of 1 is the way to go
* @Alex * Read the thread, the comment you mention makes a comparison to the subsurface scattering workflow. To my understanding it is not relevant, the "subsurface" value there is more like a mix factor than a multiplier and there is no neutral color (even black affects how the model responds to light).
I don't really understand how sss works, so I have no suggestion on how that workflow could be made better, what I know is that different renderers treat it very differently, so there is no easy way to figure what a "standard" is or is going to be.
The thing that confuses me the most is why wasn't the strenght input included when the emmision socket was included with the Principled BSDF for the first time? This is such an obvoius fix.
* @Anže * Yeah, I agree with the lack of original input being an oversight. However since blender was allowed to have it partially implemented with its omission we found ourself in this compatibility dilemma. The fix becomes less obvious when you have to support addons and legacy files.
Please read the full post before commenting. Thanks!
This is just my personal opinion/perspective. I rarely use emission in principled bsdf. But this could be great news to stylized community.
* @johnpdelacruz26 * It's most useful for things like lights, sci-fi stuff, lava, burning, screens, bioluminescence, etc. A pretty useful surface property to have. My post is mainly centered around a compromise in defaults in regards to compatibility though.
Finally, someone who gets me! In all seriousness, this looks great- do you have it working in EEVEE too?
* @daviddlfon * Yes, please click on the link.