-
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_dispersion #2340
KHR_materials_dispersion #2340
Conversation
Hi Ben, this proposal sparked a long conversation in the PBR TSG today. General comments and feedback:
Overall this looks like a great start! |
Hi @emackey! Thanks for the quick feedback!
Done!
I've referenced both of those now in the spec and also was clear on their parameter naming. OpenPBR represents dispersion via two separate numbers in order to make it easier for artistic control (Abbe number and scale factor), but they still resolve to a single value in the end, thus I suggest we stick with just Abbe number in the glTF material model.
I've added an image of a gemstone as well as referencing KHR_material_volume as the extension this is enhancing.
Done.
Done! Good idea.
I've referenced OpenPBR and its references!
Nice! Thank you! |
Very cool! Thanks for defining this. |
@MiiBond I can see us using the 20/V parametrization, it makes sense. I can make that change. I had noticed that in the paper. @MiiBond does OpenPBR/ASS/ASM allow for ior to vary around a material and do they allow for absorption to vary across the surface of a material? glTF has not adopted these textures in part because it the surface parameterization is hard to extrapolate through the volume correctly and clearly. I know one could technically use a generalized Barycentric coordinates (e.g. Warren coordinates.). I figured we were staying away from this use case. If you want to make the case that we should vary Dispersion on the surface of the material via a map unlike Absorption and IOR, please do. |
@MiiBond to confirm, if we invert the value (20/V), does that make it correspond more linearly to the visual effect of dispersion? For example, if the user supplied a value of On the PBR call today we also talked about the possibility of texturing this parameter, but decided against, at least for now. We previously ratified a non-texturable IOR setting on the idea that it's volumetric and not a surface-texture property, and it wouldn't make sense to reverse that decision here for dispersion. |
Sample model time. This one presumes the 20/V change, where |
Sorry, I've been incapacitated by the flu since Thursday. As you guys said, though, it probably doesn't make sense to change things in glTF at this point. |
...ns/2.0/Khronos/KHR_materials_dispersion/schema/material.KHR_materials_dispersion.schema.json
Outdated
Show resolved
Hide resolved
My Babylon.js implementation of this extension has been merged. |
New sample model available! I've switched from gems to prisms, and updated the background cloth. Also, the range of values goes up to 5.0 in the model now. Here's the GLB: And some screenshots, rendered by https://sandbox.babylonjs.com/ using Mike's newly-merged PR. I'm using the "Studio" IBL with default settings here. If someone could path-trace this model for comparison, that would be much appreciated! |
Co-authored-by: Bastian Sdorra <[email protected]>
Co-authored-by: Bastian Sdorra <[email protected]>
This didn't appear in VSCode's markdown preview, but we'll test GitHub.
Co-authored-by: Bastian Sdorra <[email protected]>
Adding read/write/edit support in glTF Transform as well: |
* draft of EXT_materials_dispersion * incorporating feedback * use inline latex * fix typo * specify defaults and range in extension. * make clear that it is an enhancement on top of KHR_materials_dispersion * make clear the names used in other material models. * add references from OpenPBR. * change to storing 20/V * improve equations * wording cleanup. * split equations apart. * test * improve the json to match dispersion spec * address @lexaknyazev's feedback * remove mention of texture * Some updates based on review (GitHub and PBR TSG) feedback. * Update visible light wording Co-authored-by: Bastian Sdorra <[email protected]> * Change $V$ to $V_d$ per review, add note about internal reflections * Update to reference Cauchy's equation Co-authored-by: Bastian Sdorra <[email protected]> * Fix blank line * Add note box per review. This didn't appear in VSCode's markdown preview, but we'll test GitHub. * Lambda fix per review * Tweak * Status changed from "Draft" to "RC" in an official PBR TSG vote today. * Contributor list update * Clarify Fraunhofer spectral lines and define lambda symbols Co-authored-by: Bastian Sdorra <[email protected]> --------- Co-authored-by: Ed Mackey <[email protected]> Co-authored-by: Bastian Sdorra <[email protected]> Co-authored-by: Alexey Knyazev <[email protected]>
A first draft of something we are supporting.