-
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
Clarify dispersion, iridescence, and volume for zero IOR #2435
Comments
Interesting, there's no rule that disallows generation of invalid parameter values via animation? ior=0 is really just a convenience toggle to enable specular-glossiness workflow. If people are using it as part of an animation then probably not intentionally. I noticed that there's a note in the specular extension that states that the specular-glossiness conversion via ior=0 is incompatible with the volume extension. This is technically true, as treating IOR as a very high value effectively disables transmission and therefore volume (and dispersion). But we may want to adapt the wording depending on whatever we end up adding to KHR_materials_volume. |
I think the zero IOR incompatibility with volume is just a physical result of using a large IOR value, rather than a spec-defined limitation, so it's not normative.
There is such a rule but in the aforementioned case it's a bit tricky because both keyframes are technically valid and whether an invalid IOR is actually reachable at runtime depends on the interpolation mode and exact time values. For example, if the time difference between the keyframes is 1 ULP, the animation won't have invalid values at runtime even with linear interpolation. One potential fix here would be to replace zeros with a very large value on load to guarantee that interpolated values are always technically valid. To avoid updating all current and future specs that may be incompatible with the zero IOR value, we should exhaustively address this in the |
The
KHR_materials_ior
extension allows IOR value of zero to represent "infinity" IOR. TheKHR_materials_dispersion
,KHR_materials_iridescence
, andKHR_materials_volume
extensions should explicitly address this case./cc @emackey
The text was updated successfully, but these errors were encountered: