Conversion

texture compression

Texture compression reduces texture memory, bandwidth, and download size by storing GPU-readable images in compact block-compressed formats.

What is Texture Compression?

Texture Compression is a GPU-oriented image encoding method that reduces the memory footprint and bandwidth cost of texture maps used in 3D rendering. It stores pixels in compact compressed blocks that graphics hardware can sample directly, usually with some controlled loss of image quality.

How it works

Most real-time texture compression formats divide an image into small fixed-size blocks and encode each block with a limited set of colors or mathematical parameters. The GPU decompresses only the needed block data during texture sampling, which reduces VRAM use and memory bandwidth compared with uncompressed RGBA textures. Different formats are optimized for color maps, alpha, normal maps, high dynamic range images, or mobile hardware. Choosing the wrong format can cause visible block artifacts, banding, blurry normals, or wasted memory.

GPU texture compression vs PNG/JPEG

4 bpp, 8:1 vs RGBA8

BC1 (DXT1) footprint

4x4 to 12x12 = 8 to 0.89 bpp

ASTC block range

BC5 or EAC RG11, two channels

Normal map formats

GPU texture compression vs PNG/JPEG
GPU block compression
PNG / JPEG
Where decoded
In the GPU texture unit, per sample
On the CPU at load, then uploaded raw
VRAM footprint
4 to 8 bits per pixel, stays compressed
32 bits per pixel RGBA once decoded
Ratio
Fixed per format: BC1 8:1, BC7 4:1 vs RGBA8
Variable; saves disk and download only
Random access
Yes, fixed-size 4x4 blocks
No, whole image decode
Quality
Lossy; block artifacts on smooth gradients
PNG lossless; JPEG lossy with ringing
Mipmaps
Stored precompressed in KTX2 or DDS
Generated at load, uncompressed

A JPEG saves download size but decodes to full RGBA in VRAM. For real-time targets, encode to a GPU format (BCn on desktop, ASTC on mobile, Basis Universal in KTX2 for the web) so the saving survives on the GPU.

In Meshy Meshy exports its PBR maps as standard PNG/JPEG inside the GLB or alongside FBX and OBJ; game engines block-compress them on import, and for the web run the GLB through gltf-transform or toktx to get KTX2 textures.

Use cases

  • Exporting game-ready materials from a 3D asset pipeline

  • Optimizing VRAM usage for real-time scenes in a game engine

  • Preparing downloadable 3D assets for web, mobile, or VR applications

Last updated September 14, 2026

Related Tools

3D File Compressor

Shrink 3D file size without losing visible quality.

3D File Converter

Convert between FBX, OBJ, GLB, STL and more.

Online 3D Viewer

View and inspect any 3D file right in your browser.

3D Text Generator

Turn text descriptions into 3D text and shapes.

Frequently Asked Questions

Texture compression is the process of storing texture images in compact GPU-readable formats to reduce memory use, bandwidth, and often download size in real-time rendering.

PNG and JPEG are general image storage formats that are usually decoded before GPU use. GPU texture compression formats are designed so the graphics hardware can sample compressed texture blocks directly during rendering.

Most common GPU texture compression is lossy because it approximates groups of pixels with a compact block representation. The amount of visible quality loss depends on the format, bit rate, texture content, and settings.

Texture compression can improve performance when a scene is limited by texture memory bandwidth, cache usage, or VRAM pressure. It does not directly reduce polygon count, shader cost, or draw call count.

The best format depends on the target platform and texture type. BC formats are common on desktop and console, ASTC is common on modern mobile hardware, ETC2 is widely supported in OpenGL ES 3.0 and WebGL 2, and PVRTC is used mainly for older Apple-oriented pipelines.

BC5 is commonly used for normal maps on desktop because it stores two channels with better quality than many color formats. ASTC can also work well for normal maps when the block size and quality settings are chosen carefully.

Some formats include alpha support and some do not. BC3, BC7, ASTC, and ETC2 with alpha are common choices when a texture needs smooth transparency.

Yes. Each mipmap level is compressed separately, and the GPU samples the appropriate compressed level during rendering. Mipmaps usually improve texture filtering quality and performance.

Blender can use and display texture images, but final GPU texture compression is usually handled by the game engine, export pipeline, or asset build tool. Engines such as Unity and Unreal Engine provide platform-specific texture compression settings.