gltf icon indicating copy to clipboard operation
gltf copied to clipboard

Add support for `EXT_texture_webp` v2

Open marstaik opened this issue 8 months ago • 0 comments

I was recently working in three_d which uses gltf in it's asset parser. I realized that neither three_d nor gltf actually had support for WebP.

I noticed some unmerged PR's and decided to update them in hopes of getting this in (and a dependent PR in three_d merged as well).

Going down the rabbit hole, I noticed some gremlin interaction with the allow_empty_textures feature.

  • Validate needs to also acknowledge webp's potential existence
  • Don't want to hide things from the gltf_json::Texture as it is the source of truth (ie make source private and provide a helper source())

I took the approach of making the source() function in texture use a primary_source() function, which prefers the webp and falls back to whatever was there originally.

However, I believe the most accurate solution is to permanently enable allow_empty_textures, and remove that flag, and make applications handle webp images (if they have the EXT_texture_webp feature enabled). Perhaps allow_empty_texture in its off-state is not gltf compliant anyways?

Original PR: https://github.com/gltf-rs/gltf/pull/365 Related: https://github.com/gltf-rs/gltf/pull/413

marstaik avatar Jun 19 '24 00:06 marstaik