Tanner, Migdal, and Jones [97] describe a hardware solution called clip mapping for supporting extremely large textures. The approach is implemented in SGI's InfiniteReality graphics subsystem. The basic clip mapping functionality is accessed using the SGIX_clipmap extension. In addition to requiring hardware support, the system also requires significant software management of the texture data too, in part, simply due to the massive texture sizes that can be supported. While the clip map approach has no inherent limit to its maximum resolution, the InfiniteReality hardware implementation supports clip map textures to sizes up to 32,768 by 32,768 [68]. The clip map itself is essentially a dynamically updateable partial mipmap. Highest resolution texture data is available only around a particular point in the texture called the clip center. To ensure that clip mapped surfaces are shown at the highest possible texture resolution, software is required to dynamically reposition the clip center as necessary. Repositioning the clip center requires partial dynamic updates of the clip map texture data. With software support for repositioning the clip center and managing the off-disk texture loading and caching required, clip mapping offers the opportunity to dynamically roam over and zoom in and out of huge textured regions. The technique has obvious applications for unconstrained viewing of high resolution satellite imagery at real-time rates.
Hüttner [56] describes another approach using only OpenGL's base mipmap functionality to support very high resolution textures. Hüttner proposes a data structure called a MIPmap pyramid grid or MP-grid. The MP-grid is essentially a set of mipmap textures arranged in a grid to represent an aggregate high-resolution texture that would be larger than the OpenGL implementation's largest supported texture. For example, a 4 by 4 grid of 1024x1024 mipmapped textures could be used to represent a 4096x4096 aggregate texture. Typically, the aggregate texture is terrain data intended to be draped over a polygonal mesh representing the terrain's geometry. Before rendering, the MP-grid algorithm first classifies each terrain polygon based on which grid cells within the MP-grid the polygon covers. During rendering, each grid cell is considered in sequence. Assuming the grid cell is covered by polygons in the scene, the mipmap texture for the grid cell is bound. Then, all the polygons covering the grid cell are rendered with texturing enabled. Because a polygon may not exist completely within a single grid cell, care must be taken to intersect such polygons with the boundary of all the grid cells that the polygon partially covers.
Hüttner compares the MP-grid scheme to the clip map scheme and notes that the MP-grid approach does not require special hardware and does not depend on determining a single viewer-dependent clip center as needed in the clip map approach. However, the MP-grid approach requires special clipping of the surface terrain mesh to the MP-grid. No such clipping is required when clip mapping. Due its special hardware support, the clip mapping approach is most likely better suited to the very biggest high resolution textures.