AcademySoftwareFoundation / OpenPBR

Specification and reference implementation for the OpenPBR Surface shading model
Apache License 2.0
407 stars 18 forks source link

Suggest "0.18" as the default base_color #139

Open andre-ilm opened 8 months ago

andre-ilm commented 8 months ago

Purely a VFX bias here, but we generally initialise colours to be the value of "middle grey", which as a result of our logarithmic perception, ends up being 0.18. Was 0.8 chosen because if someone sets metallic to 1.0 with default values elsewhere, then this would result in a plausible metal?

portsmouth commented 7 months ago

We took the 0.8 default from standard surface (except moved to the base_color rather than the base_weight, as people almost always just moved the weight up to 1 on connecting a texture to base_color).

We considered 0.18 but it just ends up looking very dark, given the typical defaults for viewport lighting in the DCCs. Also note that the sRGB color components that produce a 0.18 albedo are more like 0.45.

The 0.8 is basically just to avoid an albedo of 1 which is rather extreme and requires high bounce depth to converge (also, that value matches roughly e.g. how Maya objects look in the default viewport). I agree it's a bit arbitrary, but we had to choose a value that works practically in the DCCs.

In practice it doesn't seem too big a deal what the default is, as artists will almost always change it.

portsmouth commented 5 months ago

Is this OK to close?