||This article may be too technical for most readers to understand. (March 2010)|
MegaTexture refers to a texture allocation technique facilitating the use of a single extremely large texture rather than repeating multiple smaller textures. It is featured in Splash Damage's game Enemy Territory: Quake Wars and was developed by id Software technical director John Carmack.
MegaTexture employs a single large texture space for static terrain. The texture is stored on removable media or a computer's hard drive and streamed as needed, allowing large amounts of detail and variation over a large area with comparatively little RAM usage. Depending on the pixel resolution per square meter, covering a large area could require several gigabytes of memory. However, RAM is also filled by the rest of the game and the underlying operating system, limiting the amount available for texturing. As the player moves around the game, different sections of the megatexture are loaded into memory. They are then scaled to the correct size and applied to the 3D models of the terrain.
MegaTexture is an implementation of the idea of clipmapping.
Rage, powered by the id Tech 5 engine, uses a more advanced technique called virtual texturing. Textures can measure up to 128000×128000 pixels and are also used for in-game models and sprites, etc. and not just the terrain. The upcoming game Doom 4 will also use these. Carmageddon: Reincarnation also uses virtual texturing, though unlike id's virtual texturing system that is designed for unique texture-mapping everywhere, their system is designed to use storage space sparingly while still offering good blend of texture variation and resolution.
Future technology evolution
Id has presented a more advanced technique that builds upon the MegaTexture idea and virtualizes both the geometry and the textures to obtain unique geometry down to the equivalent of the texel: the Sparse Voxel Octree (SVO). Potentially id Tech 6 could utilize this technique. It works by raycasting the geometry represented by voxels (instead of triangles) stored in an octree. The goal being to be able to stream parts of the octree into video memory, going further down along the tree for nearby objects to give them more details, and to use higher level, larger voxels for farther objects, which give an automatic level of detail (LOD) system for both geometry and textures at the same time. The geometric detail that can be obtained using this method is nearly infinite, which removes the need for faking 3-dimensional details with techniques such as normal mapping. Despite that most voxel rendering tests use very large amounts of memory (up to several GB), Jon Olick of id Software claimed the technology is able to compress such SVO to 1.15 bits per voxel of position data.
- Surface caching
- Texture mapping
- id Software
- Doom 3
- Enemy Territory: Quake Wars
- Doom 4
- Carmageddon: Reincarnation
- "Enemy Territory: Quake Wars Q&A". Shacknews. 2006-04-28. Retrieved 2009-08_07.
- "From Texture Virtualization to Massive Parallelization". Id Software. August 2009. Retrieved 2011-08-08.
- "Id Tech 5 stage demo"
- "Jon Olick of id Software siggraph 2008 presentation"
- id Software
- Splash Damage
- Arnout van Meer on Quake Wars
- Sparse Virtual Textures by Sean Barrett, a related technique with more technical explanations (video demonstration).
- Amplify Texture by Amplify Creations, a Virtual Texturing extension for Unity3d.
- Amplify Texture 2 by Amplify Creations, Upcoming Virtual Texturing extension for Unity3d.