-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Purpose of base_weight and specular_weight? #76
Comments
I agree that I'd like to suggest we remove those parameters, and then rename This doesn't remove any functionality as |
I strongly disagree. Having a weight for each parameter is extremely useful, and I am posting an issue #134 where I advocate for a weight for every section. Also note that the energy conservation math applies to the weights, not to the colors. (At least this was the case for the great grandfather of OpenPBR, the 3ds max Physical Material. This is key, because you do not want adding a checkerboard to the specular color affect the diffuse level, or even worse, mapping a red-green checkerboard to the specular color generate some kind of bizzare complementary-color tinting of the diffuse. Quite the opposite, only the weight should go into the attenuation of the lower layer, so the attenuation is achromatic, without unexpected complementary-color effects, and without unexpeceted intensity changes just beause the mapped specular colors intensity happened to change) |
If the only reason for the weight is to prevent coloured transmission affecting the slab below, then there are other ways that this could be accomplished. |
See #145 for more discussion of the physical meaning of specular color and weight. As described there the "energy conservation math" works, for the case of the glossy-diffuse base (which produces the primary "specular" lobe), by having the specular weight mean the presence weight of the dielectric "gloss" (or perhaps equivalently the embedding dielectric of the diffuse medium). This makes sense because when the specular weight is zero, the reflection from the diffuse base should be unaffected. The specular color tint is applied instead as a non-physical tint to the Fresnel reflection factor for rays incident from above (i.e. the color tint is not physical absorption, it is just a non-physical tweak to the Fresnel factor). As noted, for bulk dielectric where refraction occurs (and SSS), it doesn't seem to make sense to use this intepretation of the weight (as we don't want specular weight to kill off the refraction effects, seen from above or below, which it should if it functioned as a presence weight for the bulk dielectric). In that case, the weight should instead just be a multiplier to the color tint. (While base weight is just purely a convenience to allow the base albedo of diffuse/metal to be textured with a 0-1 weight. It can be rationalized at least as a consistency thing to have every "lobe" controlled by the parametrization have some scalar weight associated with it, which dials the effect roughly on or off). Note, we need to modify the spec to clarify these interpretational things. |
I think this issue is reasonably addressed by #157? |
From what I can see, both of these inputs are only used as multipliers for
base_color
andspecular_color
respectively.If that is the case, they appear to be redundant, since the same effect could be achieved by just adjusting the color inputs instead.
The text was updated successfully, but these errors were encountered: