THREE.JS / FOUNDATIONS 260

Compressed in. Readable out.

The bundled CoffeeMat asset arrives through KTX2/Basis and Meshopt. This lab gives GLTFExporter a real compressed texture, proves the expected failure without texture utilities, then injects the backend-matched utility and reloads the exported GLB.

Initializing -

Preparing the compressed CoffeeMat asset and decoder path.

Meshes
-
Textures
-
Compressed
-
GLB
-
Exporter boundaryKTX2 -> utility -> GLB

The matrix first expects the no-utility branch to fail, then exports with the backend-matched texture utility.

Compressed texture contractread / decompress / reload
source assetwaiting

coffeemat.glb decoder path

input mapswaiting

CompressedTexture instances

utility lanewaiting

WebGPU/WebGL matched

exported GLBnot exported

readable image payload

reloadnot loaded

independent GLTFLoader parse

Without texture utilities, compressed input is an explicit exporter error rather than an implicit fallback.

KTX2Loader -> CompressedTexture -> GLTFExporter.setTextureUtils() -> GLB -> GLTFLoader

Derived from the official compressed glTF example, KTX2Loader, GLTFExporter, and GLTFLoader. Use ?forceWebGL=1 for the labeled WebGL2 comparison.

SOURCE / KTX2 + MESHOPT compressed input
RELOADED GLB readable output
LAB 260 / GLTF COMPRESSED TEXTURE EXPORT