Home

S3TC

S3TC, or S3 Texture Compression, is a lossy texture compression method used in real-time 3D graphics. Developed by S3 Graphics, it became widely adopted and is commonly referred to by its DirectX-era name DXTn, covering DXT1, DXT3, and DXT5 variants. The technique is designed to reduce texture memory usage and bandwidth while preserving as much visual quality as possible for real-time rendering.

The algorithm operates on fixed-size blocks of texels, specifically 4x4 blocks. Each block encodes two 16-bit

Block sizes differ by variant: DXT1 uses 8 bytes per 4x4 block, while DXT3 and DXT5 use

S3TC/DXTn is supported by major graphics APIs and hardware, notably OpenGL (GL_EXT_texture_compression_s3tc) and Direct3D. It has

color
endpoints
in
RGB565
format
and
a
small
palette
of
colors
derived
by
interpolation
between
those
endpoints.
Each
texel
in
the
block
selects
one
of
the
palette
entries
via
a
few
bits
of
index
data.
DXT1
stores
only
color
data
for
the
block,
while
DXT3
and
DXT5
add
alpha
information:
DXT3
contains
explicit
per-texel
alpha
data,
and
DXT5
uses
an
alpha
pair
plus
interpolated
indices
to
represent
transparency.
16
bytes
per
block.
This
results
in
substantial
memory
savings—commonly
on
the
order
of
4:1
to
8:1
depending
on
content
and
variant—at
the
cost
of
some
loss
of
detail
and
the
potential
for
block-based
artifacts,
especially
in
gradients
or
sharp
edges.
been
a
de
facto
standard
for
texture
compression
in
many
years
and
influenced
subsequent
BCn-based
formats
used
in
modern
GPUs.