Max Texture Size
Default1024px
Clamp all textures to this maximum dimension, reducing texture memory and file size.
Shrink OBJ textures, geometry unchanged.
Please wait
Optimizes the texture maps referenced by an OBJ/MTL model. Geometry stays untouched. Maps are re-encoded as lossless PNG, or JPEG when selected, then re-linked in a new MTL and delivered as an OBJ package (ZIP).
Default1024px
Clamp all textures to this maximum dimension, reducing texture memory and file size.
DefaultKeep Original Format
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.
Drag in OBJ, MTL, and textures
Inspect the maps
Compress and download
Yes. The download stays OBJ instead of being forced into GLB. You get an OBJ package (ZIP) with the updated MTL and compressed maps, so your existing OBJ pipeline keeps working.
Maps are re-encoded as lossless PNG by default, or JPEG when you choose it. WebP and KTX2 are not available for OBJ output because OBJ stores classic external bitmap files, not embedded image data.
Yes. A new MTL is generated and points to the compressed maps. The relative relationship between the OBJ and its textures is preserved, so after unzipping, the model still finds its textures.
No. OBJ external textures are limited to JPEG and PNG; WebP and KTX2 are used only for GLB/GLTF output. PNG is the safe default for quality, JPEG when file size matters more.
Yes. The quality slider controls how aggressive lossy compression is. The default PNG output is lossless; if you switch to JPEG, keep quality at 80% or above to avoid banding on gradients.
Keep PNG for normal, roughness, metallic, and alpha maps: lossless encoding avoids shading artifacts. JPEG works well for photo-like diffuse/albedo maps where file size matters more than exact pixels.