MegaTexture
MegaTexture, auch Mega-Texture, bezeichnet eine Technik der texture allocation, die es erleichtert, eine einzelne große Textur zur Verkleidung eines virtuellen Geländes heranzuziehen.
Aktuelle Spiele, wie u. a. auch Crysis, verwenden überwiegend kleinere, sich wiederholenden Texturenkacheln zur Texturierung eines Terrains. Diese Texturen sind selten größer als 2048×2048 Pixel. Die momentane Version der MegaTexture, die von id Softwares ehemaligem Technical Director John Carmack entwickelt wurde, und das erste Mal in Splash Damages Spiel Enemy Territory: Quake Wars dem Massenpublikum vorgestellt wurde, nutzt bis zu 32000×32000 Pixel große Texturen zur Darstellung des Terrains.
Technik
Die MegaTexture-Technik ist genau genommen eine Implementierung des Clip Mapping, auch ClipTexture genannt, welches von Silicon Graphics in der Mitte der 1990er entwickelt wurde.
Da die MegaTexture eine große einzelne Textur für die statische Struktur eines Geländes nutzt, ist sie sehr datenintensiv, da hier nicht auf sich wiederholende Texturen gesetzt wird. Um der großen Datenmenge Herr zu werden, bedient man sich des Texturestreaming. Dabei wird die Textur auf einem Wechseldatenträger oder einer Festplatte gespeichert und bei Bedarf geladen, um so große Mengen an Detail und Variation über ein großes Gebiet mit vergleichsweise wenig Arbeitsspeicher-Nutzung zu ermöglichen.
Während des Rendervorgangs werden dabei die benötigten Teile der Textur skaliert auf den entsprechenden Mip-Mapping-Level, der von der Polygongröße abhängig ist, in den zugewiesenen Texturspeicher des Videospeichers geladen. Dieses Vorgehen erlaubt es der Engine, die Anzahl der Texel, der Texturpixel, im VRAM gering zu halten.
Zukünftige Entwicklung
Einleitung
Id hat bereits eine weiter fortgeschrittene Technik präsentiert, welche auf der MegaTexture-Idee aufbaut und sowohl Geometrie als auch Texturen virtualisiert, um auf diese Art einzigartige Geometrien bis hin zum Gegenwert der Texel (Sparse Voxel Octree (SVO)) zu erhalten. Potenziell könnte diese Technik in der id Tech 6 zum Einsatz kommen.
Dies funktioniert mittels Raycasting einer durch Voxel anstelle von Polygonen dargestellten Geometrie. Ziel ist es, Teile des Octrees in den Videospeicher zu streamen und so die Komplexität der Geometrie derart zu erhöhen, dass selbst aus nächster Nähe ein bisher unerreichter Detailgrad entsteht. Die Geometriedetails, die mit dieser Methode dargestellt werden können, sind beinahe unendlich, was es unnötig macht, 3D-Details mit Techniken wie dem Normal Mapping vorzutäuschen.
Obwohl die meisten Voxel-Test große Mengen an Speicher benötigen (bis zu mehrere Gigabytes), glaubt Jon Olick von id Software, dass es möglich ist, die SVOs auf 1.15 bits per Voxel an Positionsdaten zu komprimieren.
Virtual Texturing
Das id-Software-Spiel Rage, ausgestattet mit der id-Tech-5-Engine, nutzt eine fortgeschrittene Technik namens Virtual Texturing.[1] Texturen können so 128000×128000 Pixel und größer sein[2] und werden nicht nur für Terrain, sondern unter anderem auch für Models und Sprites verwendet.
Weblinks
- 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; AVI; 144 MB).
Einzelnachweise
- http://s09.idav.ucdavis.edu/talks/05-JP_id_Tech_5_Challenges.pdf From Texture Virtualization to Massive Parallelization
- Archivierte Kopie (Memento des Originals vom 15. Oktober 2007 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis. Id Tech 5 stage demo