Home

mipmaps

Mipmaps are precomputed, downscaled versions of a texture used to improve rendering quality and performance in many 3D graphics systems. A mipmap chain consists of level 0, the original texture, and successively smaller levels where each level is typically half the width and height of the previous one, down to a 1x1 texel level. This arrangement provides a multi-resolution representation that helps the system sample textures at various distances and screen sizes.

During sampling, the GPU selects a mip level based on the texture’s footprint in screen space and

Generation and formats vary by platform. Mipmaps can be generated automatically at load time by graphics APIs

Usage considerations include memory overhead, since the full mipmap chain requires about 1.33 times the memory

the
viewing
parameters.
Filtering
is
then
applied
within
the
chosen
level,
and,
for
smoother
results,
between
adjacent
mip
levels
(a
process
known
as
trilinear
filtering).
By
using
appropriately
scaled
textures,
mipmaps
reduce
aliasing
and
shimmering
that
occur
when
a
high-frequency
texture
is
minified,
while
also
improving
cache
coherence
and
reducing
the
number
of
texture
fetches.
(for
example,
OpenGL’s
glGenerateMipmap
or
Direct3D
equivalents)
or
supplied
manually.
Levels
are
typically
created
with
a
box
or
more
refined
prefilter,
and
most
pipelines
support
both
power-of-two
and
non-power-of-two
textures,
though
NPOT
support
and
mipmapping
behavior
can
differ
by
hardware.
of
the
base
texture.
Mipmapping
interacts
with
filtering
modes
and
anisotropic
filtering,
which
can
further
affect
quality
and
performance.
The
concept
was
introduced
in
the
1980s
as
a
solution
to
texture
aliasing
and
sampling
efficiency
in
real-time
rendering.