Opening a new thread here, based on discussion around #1612.
Storing three independent data channels in compressed textures introduces significant artifacts with current approaches (see #1612). As a result, these two cases in the current glTF material specification require consideration:
- occlusion/rough/metal (RGB) texture
- three-channel normal (RGB) texture
These could be solved with:
- (1) occlusion (R) and rough/metal (RG) textures, and
- (2) two-channel normal (RG) texture
A general-purpose texture-swizzling extension would be an alternative to (1). Currently that is harder to support on the web, but it won't always be so, and might be worth considering today.
Assuming (1) and (2) are the correct solutions here, what are the right mechanisms to bring them into the format? A couple ideas:
- (A) Introduce new extensions, e.g. KHR_packing_normal, KHR_packing_roughness_metallic, analogous to MSFT_packing_normalRoughnessMetallic.
- (B) Include them with the upcoming "PBR Next" material model's extensions; do not backport to existing metal/rough, spec/gloss, or unlit materials.
- (C) Include these changes, and perhaps other KTX2/Basis-related changes, in a glTF 2.1 release to simplify the perceived complexity, as compared to specifying multiple interdependent extensions.
Opening a new thread here, based on discussion around #1612.
Storing three independent data channels in compressed textures introduces significant artifacts with current approaches (see #1612). As a result, these two cases in the current glTF material specification require consideration:
These could be solved with:
A general-purpose texture-swizzling extension would be an alternative to (1). Currently that is harder to support on the web, but it won't always be so, and might be worth considering today.
Assuming (1) and (2) are the correct solutions here, what are the right mechanisms to bring them into the format? A couple ideas: