Get huge savings by converting, resizing and re-encoding textures.
In typical game or product-visualisation assets, textures account for 70-95 % of download size. This article walks through each control in the Texture compression section and shows when to use it.
Choose the container that balances quality, transparency and browser support:
| Format | Pros | Cons | Best for |
|---|---|---|---|
| JPEG | Tiny files, universal support | No alpha, lossy | Photos, baked lightmaps |
| PNG | Lossless, alpha channel | Large files | Logos, decals, UI sprites |
| WebP | 25-35 % smaller than PNG, full alpha | Older Safari pre-16.0 lacks support | Most 3D models |
| AVIF | 50 % smaller than WebP, HDR support | Decoding is slower; limited Safari | High-res hero textures |
Explore browser support: caniuse.com.
Large textures kill performance even at high GPU memory budgets. Limit dimensions to powers of two for best mip-mapping. For Web - 2048 px is a sweet spot.
For runtime decoding on the GPU, container formats like KTX2 with Basis Universal are superior – they deliver BC7/ETC/RGTC sized blocks directly to texture memory. We plan to expose this option in a future update.