Geomipmapping or geometrical mipmapping is a real-time block-based terrain rendering algorithm developed by W.H. de Boer in 2000 that aims to reduce CPU processing time which is a common bottleneck in level of detail approaches to terrain rendering. [1]
Prior to geomipmapping, techniques such as quadtree rendering were used to divide the terrain into square tiles created by binary division with quadratically diminishing size. The subdivision step is typically performed on the CPU which creates a bottleneck as geometry commands are buffered to the GPU. Unlike quadtrees which send 1x1 polygon units to the GPU, to reduce the CPU processing time geomipmapping divides the terrain into grid-based tiles which are themselves regularly subdivided. Typically, a fixed number of vertex buffer objects (VBOs) are stored on the GPU at different grid resolutions, such as 10x10 and 20x20, and then placed at major terrain regions selectively chosen by the CPU. A vertex shader is then used to reposition the vertices for a given VBO, all on the GPU. Overall, this results in a major reduction in CPU processing, and reduced CPU-to-GPU bandwidth as the GPU then performs most of the work. Geoclipmaps and GPU raycasting are two other modern alternatives to geomipmapping for interactive rendering of terrain.
See also
editReferences
edit- ^ de Boer, W.H., Fast Terrain Rendering using Geometrical Mipmapping, in flipCode featured articles, October 2000. Available at https://www.flipcode.com/archives/article_geomipmaps.pdf