Terrain RenderingUniversität zu Köln
WS 2014/15HKI – Softwaretechnologie 2 (Teil 1)
Von Tilo Kochs
Terrain = große Ebene
Speichern in 2-dimensionaler Height-Map -> zeigt die Höhe des Terrains an
Wobei: Schwarz= geringste Höhe Weiß = größte Höhe
Repräsentierung eines Terrains
Problematik: Gitter aus Dreiecken erzeugen Viele Dreiecke = lange Renderzeit Wenige Dreiecke = unschön
Lösung: Unterteilung durch Quadtree mit rekursiven Algorithmus
Unterteilung des Terrains
Jedes Viereck aus 2 Dreiecken -> Problem des sogenannten cracking
Erzeugen der Dreiecke
Jedes große Viereck, welches an kleineren grenzt wird in mehreren Dreiecken unterteilt
Lösung des cracking-Problemes
Komplettt dynamische Gestaltung eines Terrains
Die Funktion liefert: - die Höhe oder den kompletten 3D-Vektor an jeden Punkt des Terrains - den Normalenvektor - Texturkoordinaten - Die Farbe des Terrains am jeweiligen Punkt
Terrain - Rückruffunktion
Statische Terrians können durch gewöhnliche Textur-MIP-Maps dargestellt werden
Erzeugung von verschiedenen Versionen von Terrianblöcken (unterschiedliche Detailstufen)
Geo – MIP- Mapping
Texturierung
Color-Map wird über das gesamte Terrain gelegt (Ohne Kachelung)
Details-Map (mit Rauschen) wird über das gesamte Terrain, mehrfach gekachelt, gelegt
Diese Kombi = Multitexturing
Color-Map und Detail-Map
Verschiedene Layer des Terrains liegen als einzelne Texturen vor
Das Terrain wir in meherer Schichten aufgeteilt
Man interpoliert zwischen 2 Texturen
Vorteil: Terrain kann einzigartig gestaltet werden
Splatting
Jede „Scheibe“ der Volumentextur entspricht eine anderen Höhenschicht
W-Achse entspricht der Höhe, also der y- Koordinate des Terrains
Großer Vorteil: es sind keine Vorberechnungen nötig
Nachteil: viele Grafikkarten unterstützen keine Volumentexturen
Volumentexturen
Berechnung statischer Beleuchtung
Light-Map (Berechnung durch Ray-Tracing)
Beleuchtung auf Basis eines Normalenverktors
Normal-Map
Beleuchtung
Light-Map
Normal-Map
Vorsorglich implementiert, da noch keine eigene Terrain-Klasse vorhanden
Vereint die meistern der besprochenen Aspekte in einem Tool
Der TerrainEditor