Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Terrain Rendering USF 2001 Dirk Ringe (Phenomic Game Development) Stefan Röttger (Universität Stuttgart)

Ähnliche Präsentationen


Präsentation zum Thema: "Terrain Rendering USF 2001 Dirk Ringe (Phenomic Game Development) Stefan Röttger (Universität Stuttgart)"—  Präsentation transkript:

1 Terrain Rendering USF 2001 Dirk Ringe (Phenomic Game Development) Stefan Röttger (Universität Stuttgart)

2 Agenda " Problematik " Tesselierung " Texturierung " Beleuchtung " Fazit

3 Problematik 1 " Unsinnig große Datenmengen " 1000x1000 Höhenpunkte sind 2.000.000 Dreiecke " Und das ist eine „kleine“ Welt " Wie bekomme ich einen hohen Detailgrad bei großen Welten? " Wie halte ich solche Datenmengen im Speicher " Woher bekomme ich solche Datenmengen (Content Creation Probleme) " Überhänge, Höhlen, etc.

4 Problematik 2 " Wie rendert man eine Landschaft " Reduzieren der Dreieckszahlen durch " Culling " LOD " Soll die Landschaftsform zur Laufzeit geändert werden (GeoMod)?

5

6

7 Problematik 3 " Wie texturiert man sowas? " Im Nahbereich ist ein Pixel fast 1cm klein " Das gibt bei einer Welt von 1km etwa 100.000 Texel im Quadrat

8 Kriterien " Größe der Welt " Minimale und maximale Betrachtungsentfernung/ - winkel " Geometrie Laufzeit veränderbar " Qualität der Texturierung " Statische Beleuchtung Tag-Nacht-Zyklen " Dynamische Lichtquellen " CPU oder GPU lastig

9 Übersicht der Verfahren

10 Tesselierung 1 (Brute Force) " Einfach alles an die Hardware übergeben " Gecullt werden ganze Tiles " Bei T&L Karten können locker 20000 bis 100000 Dreiecke fürs Terrain benutzt werden  NVidia schwört drauf " Vorteil: Wenig CPU Last " Nachteil: Begrenzte Sichtweite

11 Tesselierung 2 (TIN) " TIN = Triangle Irregular Network " Das Terrain wird vom Level Designer direkt als Mesh editiert oder durch ein Tool aus der Heightmap erzeugt " Der Mesh wird fürs Culling in mehrere Teilmeshes zerlegt " Die Meshes werden direkt gerendert " Vorteile: Beliebige Geländeform und Texturierung " Nachteile: Keine GeoMods

12 Tesselierung 3 (Geo Mipmapping) " SLOD (Static Level of Detail) Verfahren, daß an Texture Mipmapping angelehnt ist " In einem Vertex Buffer werden alle Vertices gespeichert " Es gibt mehrere Index Buffer, die je nach Entfernung ausgewählt werden " Die Übergänge zwischen Tiles sind auf maximalen Level (oder anders strikt definiert) " Vorsicht: In dieser Variation für Software T&L ungeeignet!

13 Tesselierung 4 (CLOD) " CLOD = Continuous Level of Detail " Abhängig von Entfernung oder Screenspaceerror werden mehrere Dreiecke zu einem Zusammengefaßt " Vorteil: Unbegrenzte Sichtweite, GeoMods " Nachteil: Hohe CPU Last, je nach Verfahren aufwendig " Zu beachten: Ein Großteil der Performance hängt an cachefreundlichen Datenstrukturen!

14 Tesselierung 5 (CLOD Quadtree) " Die Landschaft wird rekursiv in Quadrate unterteilt. " In ersten Pass wird bestimmt, wie groß der Screenspaceerror pro Quadrat ist, und dementsprechend weiter aufgeteilt werden muß. " Im zweiten Pass wird anhand dieser Tesselierungsflags der Mesh erzeugt und dabei auf die Tesselierung angrenzender Quadrate geachtet.

15 Tesselierung 6 (CLOD ROAM 1) " Hier wird die Landschaft rekursiv in Dreiecke unterteilt. " Beim Unterteilen werden jeweils beide Dreiecke, die an der Hypothenuse sitzen geteilt. Dadurch werden Cracks durch unterschiedliche Unterteilung vermieden. " Falls ein Dreieck zu weit unterteilt wird, werden die Nachbarn rekursiv zur Unterteilung gezwungen

16 Tesselierung 7 (CLOD ROAM 2) " Split Only ROAM tesseliert die Landschaft jeden Frame neu. Relativ einfach zu implementieren. " Split and Merge ROAM: Es wird eine Framekohärenz ausgenutzt, da die Kamera sich ja nur stückweise bewegt. " Dazu werden für Dreiecke deren Splitfaktoren in Prioritylisten namens SplitQueue und MergeQueue gesammelt und jeden Frame entsprechend aktualisiert. " Sehr aufwendig zu implementieren, kann schneller als SplitOnly sein

17 Tesselierung 8 (VIPM) " VIPM = view independant progressive mesh " Die Landschaft wird in Tiles unterteilt " Jedes dieser Teils wird mit VIPM gerendert. " Die Übergänge der Tiles sind immer vollständig dargestellt, dadurch werden Cracks vermieden. " Vorteil: Minimale CPU Last, hohe Dreieckszahlen möglich. " Nachteil: Keine GeoMods, ScreenSpace Error ist bei gleichen Dreieckszahlen einiges höher als bei CLOD Verfahren (da view independent).

18 Sonstige Verfahren " Displacement Maps " Bald in Hardware verfügbar " Zusammen mit NPatches wird alles in Hardware gemacht " View Independant " Slicing " Ähnlich dem Fur Rendering werden Scheiben durch die Landschaft gezogen und durch die Höhe bestimmt, wo die Scheibe transparent ist oder nicht " Nachteil: Gigantische Fillrate, gut für Radarmaps etc.

19 Beispiele " Nach besten Wissen und Gewissen! " Black & White: Geo mipmapping " AquaNox: CLOD mit Quadtrees nach Roettger " PlanetSide: TINs, die offline mit view independent QuadTrees nach TopoVista erzeugt wurden " Yager: Brute Force " Unreal Warfare: Brute Force

20 Texturierung 1 (Welttextur) " Eine große Textur wird über das gesamte Terrain aufgespannt " Vorteil: äußerst einfach " Nachteile " Geringe Auflösung der Textur führt zu schwammigen Terrain " Steile Bereiche sind verzerrt

21 Texturierung 2 (Detailtextur) " Der Welttextur wird einfach eine Detailtextur mitgegeben, die sich recht häufig wiederholt. " Dadurch ist die Landschaft auch in der Nähe scharf " Vorteil: einfach " Nachteil: keine wirklich Unterscheidung zwischen Terrainbereichen (Fels braucht anderes Detail als Gras)

22 Texturierung 3 (Tiling) " Jeder Terraintyp existiert als Textur " Für jeden Terraintyp wird die entsprechende Geometrie erzeugt " Bei den Übergängen können die Tiles mit dem Alphakanal ineinander gemischt werden " Es dürfen keine Dreiecke zusammengefaßt werden! " Vorteil: Hohe Texturauflösung " Nachteil: Funktioniert nicht mit hohen Sichtweiten

23 Texturierung 4 (Splatting) " Keine Welttextur, mehrere hochaufgelöste Texturen, eine pro Terraintyp (Gras, Fels,...) " Pro Terraintyp gibt eine Alphamap die Bedeutung des Typs an dieser Stelle wieder " Die Landschaft wird pro Terraintyp einmal gerendert " Vorteil: Hohe Auflösung bis zum Horizont " Nachteil: Viel Speicherverbrauch durch die Alphamaps, hohe Polygonzahlen durch viele Passes, hohe Fillrateanforderungen

24 Texturierung 5 (Unique Texturing) " Die Landschaft wird rekursiv in Quadrate unterteilt (Quadtree) " Jeder Quadtreeknoten repräsentiert eine Textur fester Größe " Die Ebene im Baum bestimmt, wieviel Bereich diese Textur abdeckt " Die Texturing werden dynamisch von der CPU erzeugt (unter Zuhilfenahme von Perlin Noise etc.) " Moderne GPUs können diese Aufgabe auch

25 Beispiele " AquaNox, Unreal Warfare: Terrain splatting " Soul Ride: Unique Texturing " Black & White: World map + Detail map " Warcraft 3: Tiling

26 Beleuchtung 1 " Vertex Lighting: an jedem Vertex wird klassisch beleuchtet " Nachteil: sobald LOD ins Spiel kommt, sieht es schlecht aus " Nachteil: CLOD oder VIPM machen es noch schlimmer, da die Normalen springen " Lightmap: Extratextur " Übliche Technik

27 Beleuchtung 2 " Korrekte Beleuchtung ist wichtig " Es gibt drei „Lichtquellen“: Sonne/Mond, Himmel und Reflexionen durch den Boden " Himmel ist kein ambientes Licht, sondern eine sphärische Lichtquelle (ungleichmäßig) " Der Anteil Himmel, den ein Punkt sieht bestimmt die Helligkeit dieser sphärischen Lichtquelle

28 Beleuchtung 3 " Dynamische Lichtquellen müssen in die Lightmap reingerechnet werden

29 Fazit " Es gibt keine eierlegende Wollmilchsau im Terrainrendering " Die Anforderungen vom Spiel und die Möglichkeiten der Zielhardware bestimmen die möglichen Verfahren " Auch wenn eine gewisse „Stabilität“ bei den Algorithmen erreicht wurde, wird immer noch aktiv in diesem Bereich geforscht. Das Ende des möglichen wurde noch nicht erreicht.

30 Literatur/Links " Ich wollte hier einen Haufen Links posten, aber seltsamerweise stehen die alle schon auf dieser Seite: " http://vterrain.org http://vterrain.org " Ebenfalls äußerst interessant ist das Archiv der Mailingliste GameDev-Algos: " https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list

31 Fragen? " Fragen?


Herunterladen ppt "Terrain Rendering USF 2001 Dirk Ringe (Phenomic Game Development) Stefan Röttger (Universität Stuttgart)"

Ähnliche Präsentationen


Google-Anzeigen