-
Notifications
You must be signed in to change notification settings - Fork 21
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
Should non-physical tinting affect lower layers? #81
Comments
There isn't an easy way to express this in a physically-based manner though, without dropping down to some specific approximation (like albedo scaling with some ad-hoc modification). In the spec currently we say that the
Even that doesn't really make sense physically, because the IOR of the dielectric is inconsistent with this modulated Fresnel factor (as noted). Perhaps the most physical thing would be to say that Though then one couldn't produce a green specular lobe with an un-tinted (e.g. white) base lobe. That seems rather unphysical though, so do we really want to support it? |
@lukasstockner Just to note, the changes we propose in #157 explicitly decouple the underlying layers from the We now say: This eliminates any complementary color due to the This is still unphysical (we are artificially tinting a Fresnel factor so losing energy), but in a really clear, minimal way that is easy to account for theoretically. |
.Addressed in #157, can be closed. |
The spec currently mentions that if
specular_color
is used to affect the color of the specular reflection, he underlying layers (diffuse/SSS/transmission) should be tinted according to the complementary color to preserve energy.This makes sense from a physical perspective. However, from what I can tell, these parameters are intended for artistic control rather than physically motivated. Therefore, I'd argue that affecting the lower layers is unintuitive and unexpected - for example, if a user wants to achieve a white object with a green specular highlight, they'd need to set the base_color to something like
(0.96, 1.0, 0.96)
. Instead, I'd suggest to scale the lower layer's intensity according to the maximum value across components, in order to preserve energy without tinting it.The text was updated successfully, but these errors were encountered: