GLTF Texture Compression

Optimize GLTF textures and download as an optimized GLB.

Workspace

Drop files here

or click to browse, paste supported

About This Tool

Upload the .gltf and the textures/.bin from the same directory. Textures are scaled and transcoded while geometry stays unchanged, and the result is packaged into an optimized single-file GLB. Textures are processed locally.

About Configuration Options

Texture / Image

Max Texture Size

1024px

Clamp all textures to this maximum dimension, reducing texture memory and file size.

256px · 512px · 1024px · 2048px · 4096px · Keep Original Size

Texture Format

WebP

Convert textures to a more efficient format. WebP offers excellent compression and wide browser support.

WebP · JPEG · PNG · KTX2 · Keep Original Format

Quality

0.750.1 – 1 · step 0.05

Sets the compression quality for WebP and JPEG formats.

KTX2 Encoding Mode

ETC1S produces smaller files, ideal for diffuse maps. UASTC preserves more detail, recommended for normal maps.

Frequently Asked Questions

View all FAQs

Why GLB output?

After texture compression, a single-file GLB is the most practical delivery format: one file to host, one request to load, and no separate .bin or texture files to keep in sync. Everything is embedded automatically.

Which files need to be uploaded?

Upload the .gltf together with the .bin and all textures it references from the same directory. The tool re-encodes those maps and packages everything into a single-file GLB: companion files are not required for the result.

Will the geometry change?

No. Only the embedded texture images are resized and transcoded; the mesh, normals, UVs, and animation are preserved exactly. The GLB is a repackaged version of the same scene with lighter images.

Can texture size be limited?

Yes. Pick a preset of 256, 512, 1024, 2048, or 4096 px, or keep the original size. 1024 or 2048 is enough for most web use; below 1024 fine detail can look soft.

Will normal maps be affected?

Normal maps are resized and re-encoded like the other textures. For the best surface shading, choose PNG or keep the original encoding: lossy formats like JPEG can bake visible artifacts into normals.

Does the output GLB work with every glTF viewer?

Yes, GLB is the standard binary glTF container, so the result loads in Three.js, Babylon.js, Blender, and most model viewers. One note: KTX2 textures need a loader with KTX2 support (Three.js KTX2Loader or Babylon.js), while WebP/JPEG/PNG work everywhere.