-
Notifications
You must be signed in to change notification settings - Fork 1.2k
KHR_materials_clearcoat_anisotropy #2528
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
base: main
Are you sure you want to change the base?
KHR_materials_clearcoat_anisotropy #2528
Conversation
|
I've seen the nested extensions in the prior EXT_ proposal but this one is the first KHR_ one so I'll comment here. I was very surprised to see the nesting - I didn't even realize it's supported, but I will assume it is. As far as I know nesting is not used by any extension proposals that have been merged to date - this sets a new precedent. I'm not entirely sure why this precedent is necessary to set - as far as I can tell these extensions can just live side by side with other extensions. This changes the parsing structure for some parsing libraries in ways that I'm really not looking forward to supporting (e.g. cgltf has generic extension support via "unknown" extensions present for materials, but that will not work for sub extensions). This introduces modeling questions for extensions that have cross-talk - what if there's some sort of physical property that is relevant for two existing material extensions that enhances this in some way? Overall there used to be a simple rule, that a material comes with a set of extensions that each specify additional properties and textures. This rule is now less simple, and I wish this wasn't the case. |
Every JSON object implementing
It is used with every texture slot in material extensions because of |
|
I think the texture slots are not quite the same situation - these are nested objects with each individual object being extended, vs nested extensions that are being proposed here. That said, cgltf doesn't support unknown extensions on texture slots (it supports KHR_texture_transform as a first class but nothing else), so perhaps in some sense these are more similar. Is there a specific reason for why these are specified as sub-extension? Following the logic, should extensions like SPZ 3DGS be a sub-extension of the base extension, should KHR_materials_volume be a sub-extension of KHR_materials_transmission, should KHR_materials_dispersion be a sub-extension of KHR_materials_volume? What bothers me is that with |
|
There's a fine line between dependency and composition here and it might be possible to argue both ways sometimes. For example, On the other hand, this extension explicitly depends on the I'd say that sub-extension design implies that dependency is so strict that breaking it would make no sense, in this case:
|
|
Only a minor aside @zeux about the nesting:
It is, as of the current state at https://github.com/KhronosGroup/glTF/pull/2490/files#diff-a8204f6812f8d61d54a7bee76d189bbd9ea7de2a2cbdd565d829075815554499R81 , following up from the comment at #2490 (comment) |
This extension duplicates the anisotropy of the base layer but for the clearcoat layer.