Max Texture Size
Default1024px
Clamp all textures to this maximum dimension, reducing texture memory and file size.
Optimize GLTF textures and download as an optimized GLB.
Please wait
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. Everything is processed locally.
Default1024px
Clamp all textures to this maximum dimension, reducing texture memory and file size.
DefaultWebP
Convert textures to a more efficient format. WebP offers excellent compression and wide browser support.
Default0.75
Range0.1 – 1 · step 0.05
Sets the compression quality for WebP and JPEG formats.
ETC1S produces smaller files, ideal for diffuse maps. UASTC preserves more detail, recommended for normal maps.
Drop .gltf and texture files
Check detected maps
Compress and download GLB
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.
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.
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.
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.
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.
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.