-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
KHR_materials_clearcoat Fresnel should not influence material emission #2396
Comments
This issue has been the subject of some offline discussion in the PBR TSG lately. The short explanation is, we know we don't do a great job of dealing with IOR differences between material layers. Many glTF renderers completely ignore IOR between internal layer boundaries, and we don't do anything to explicitly disallow that. However, the question at hand in this issue is about an external boundary, not internal: Light has been emitted from deeper inside the material, and is attempting to exit via the clearcoat layer. In the real world, a clearcoat layer would have some nonzero thickness, and there would be a crossing from inside the clearcoat to the external world, which is an IOR 1.5 to 1.0 crossing. This means there would be an angle of total internal reflection, where emitted light could not escape near the Fresnel edges. This darkens the perceived amount of emission along those edges. So I think that might be the motivation to keep this equation. |
I agree with @droettger and would say that we have a bug in the sampleviewer implementation (and present in webviewers I tested) 1: Light hits the clearcoat interface - here we will have reflectance (specular) according to the Fresnel equations. This is not what you will see if you look at, for instance, the This is what it should look like - here you can clearly see that the reflections from the base layer are not present in the "coat" columns. |
@emackey Regarding critical angle/total internal reflection.
The effect would actually be much less visible than expected - this is because as light enters the clearcoatlayer it will refract. However - I belive this is a separate issue and not related to the cancellation of specular contribution on the base layer (since the air/media interface already is handled in the coat layer) |
Thought experiment:
You have an emissive glass sphere with IOR 1.5 and add an infinitely thin white clearcoat with IOR 1.5 on top of it.
What changes? Nothing. The resulting image should be exactly the same.
There is no vacuum to clearcoat boundary beneath the clearcoat surface, so any emitted light from that surface should not be affected at all by the clearcoat Fresnel, no matter what the base material is.
The clearcoat would potentially just add reflections from other lights with the Fresnel between the surrounding medium (usually vacuum) and the hardcoded IOR of 1.5 of the clearcoat. Only the weighting of the base material BSDF under the clearcoat layer is affected by that Fresnel.
(If the KHR_materials_clearcoat had specified a color, that would affect the emission, but as long as the clearcoat is white and infinitely thin, it should not block light emissions in any way.
The text was updated successfully, but these errors were encountered: