Back

Texture Compression Techniques

Get huge savings by converting, resizing and re-encoding textures.

texturescompressionktx2webpavif
Updated 2025-06-29

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.

Why compress textures?

  • Faster initial load → better Core Web Vitals.
  • Lower memory footprint on mobile GPUs.
  • Cheaper CDN / S3 bandwidth bills.

Image format

Choose the container that balances quality, transparency and browser support:

FormatProsConsBest for
JPEGTiny files, universal supportNo alpha, lossyPhotos, baked lightmaps
PNGLossless, alpha channelLarge filesLogos, decals, UI sprites
WebP25-35 % smaller than PNG, full alphaOlder Safari pre-16.0 lacks supportMost 3D models
AVIF50 % smaller than WebP, HDR supportDecoding is slower; limited SafariHigh-res hero textures

Explore browser support: caniuse.com.

Max dimensions

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.

Quality slider

  • 90-100 – Near-lossless. Use for hero assets viewed up close.
  • 70-85 – Default. Visual difference is negligible; halves file size vs lossless.
  • <60 – Only for distant props or mobile where bandwidth is at a premium.

Consider KTX2 + BasisU

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.