A multi-resolution texture mapping system suitable for large scale terrain
rendering using commodity graphics processing units (GPU). The GPU vertex
and fragment shaders are used to implement the clip-mapping
functionality. The terrain texture is represented by a combination of a
mip-map and a multi-level clip-map having independent origins and off-set
values. The independent clip-map levels may be independently updated. The
offset values allow the origins to be associated with a reference point
in a scene to be rendered. The desired clip-map level to be used to
render a particular fragment may be determined using the base 2 logarithm
of the maximum screen-space derivative of the source texture required by
the terrain geometry to be drawn. If the desired clip-map level is
non-integer and lies between two clip-map levels, appropriate texel data
is created by interpolating between the bounding clip-map levels. This
interpolation allows a multi-resolution texture mapping to be displayed.