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

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Algorithmen und Datenstrukturen
Computer Graphics Shader
Lokale und globale Netzwerke
Hauptseminar - Computer Graphics
Daten - Sicherung Begriffsdefinition Arten der Datensicherung
Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign.
WR + WS ZEIGEN Neues aus der Mathematik.
Körperberechnung Würfel Einheitswürfel Oberfläche Volumen Quader
Terra Workstation. Terra Workstation Unterschied Workstation PC Lösungen an Fallbeispielen einer fiktiven Firma Fallbeispiele aus den Abteilungen.
Scanner.
Kapitel 6: Klassifizierung von Sortiertechniken
7. Natürliche Binärbäume
Grundlagen der Informatik
3D-Kompression Multimedia-Seminar, WS 2001/2002 Michael Weyel.
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
Sortierverfahren Richard Göbel.
5. Beleuchtung und Schattierung
Internetstruktur Das Internet besteht aus vielen Computern, die weltweit untereinander vernetzt sind.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Simulation und 3D-Programmierung Praxis: Dreiecke, Texturen, Vertex-Buffer Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung.
Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung
OGRE Object-Oriented Graphics Rendering Engine Szenen-orientierte, flexible 3D Engine in C++ Hardware-beschleunigte 3D Grafiken Unterstützt Direct3D und.
Java3d „Licht und Material“
Routing mit dem Distanzvektoralgorithmus
Visualisierung eines Sultan Han auf Basis einer Gameengine
1. Warum ist „Kartenkunde“ für die Feuerwehr wichtig ?
Computergrafik Vom Dreieck zum Ego-Shooter Olaf Müller
Displacement Mapping Dynamische Generierung detaillierter Geometrien
Energiequellen Energieformen.
Wie macht man ein Sudoku? Transformations-Methode:
BSP Binary Space Partitioning
Ortsbasierte Sichtbarkeitsanalyse mit digitalen Geländemodellen auf mobilen Endgeräten Roland J. Graf Fachhochschule Salzburg.
Lommy® SAFE Individuelles Überwachen von Fahrzeugen und Gütern.
Effiziente Algorithmen
Ich möchte gerne mehrere Bilder auf ein Folie
Depth of Field Ein Fachvortrag von: Max Goltzsche und Igor Marijanovic Real-Time RenderingBeuth Hochschule für TechnikSoSe 2012.
Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. Manfred Thaller AM 3 Übung: Softwaretechnologie.
Massstabsberechnung 6. Klasse
Effiziente Algorithmen
Powerpoint 2010 Start Funker Panorama: Zuschauer auf der Elbbrücke beim Weinfest 2011 in Meißen.
Der Mond Warum ist das so?
Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung.
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
FREUNDSCHAFT.
LOD Levels of Detail Oliver Gassner Christian Troger.
Helwig Hauser Teil 4: Texturing Farbe, Struktur, Umgebung.
Beleuchtungsmodelle, Schattierungsmodelle
Institut für C omputer G raphik, TU Braunschweig BioBrowser Interaktive Molekülmodelle als zentrales Zugangs- und Dokumentationswerkzeug für biologische.
Michael Schmidt computer graphics & visualization Texture Mapping Lapped Textures.
Augmented Reality mit korrekter Beleuchtung Thorsten Grosch
T. Wallrath Optimierung des Photon Mapping Verfahrens durch Verbesserung der Radiance Estimate Berechnung und Einsatz von Radiosity Photonen.
Erfahrungen mit Microsoft DirectX 8 W. Krug, April 2002.
Universität zu Köln WS 2014/15 HKI – Softwaretechnologie 2 (Teil 1) Von Tilo Kochs.
Die Welt der Shader Universität zu Köln WS 14/15 Softwaretechnologie II (Teil 1) Prof. Dr. Manfred Thaller Referent: Lukas Kley Fortgeschrittene Techniken.
Stefan Röttger Universität Stuttgart (VIS). Überblick 1. Motivation 2. Shadow Volumes [Crow77] 3. Verfahren ohne Stencil Buffer 4. Demonstrationsfilm.
F r e u n d s c h a f t s m e l o d i e
AGP, PCIE Bus im Vergleich AGP: Accelerated Graphic Port 1997 von Intel entwickelt. Ab 1998 AGP dann in großem Stil in PCs als Grafikkartensteckplatz verwendet.
Die Renderpipeline.
Pointer. Grundsätzliches: Im Arbeitsspeicher werden Daten gespeichert. Um auf die Daten eindeutig zugreifen zu können, werden diesen Daten Adressen zugeordnet.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 1 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Bubblesort. Inhaltsverzeichnis Allgemeines Aufbau Prinzip Beispiel.
Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Automatische Speicherverwaltung.
© Tobias Bäuerle, Virtuelle Präsenz WS10/11, Uni Ulm Übung Second Life Techniken.
 Präsentation transkript:

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

Agenda " Problematik " Tesselierung " Texturierung " Beleuchtung " Fazit

Problematik 1 " Unsinnig große Datenmengen " 1000x1000 Höhenpunkte sind 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.

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

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

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

Übersicht der Verfahren

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

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

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!

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!

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.

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

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

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).

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.

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

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

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)

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

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

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

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

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

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

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

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.

Literatur/Links " Ich wollte hier einen Haufen Links posten, aber seltsamerweise stehen die alle schon auf dieser Seite: " " Ebenfalls äußerst interessant ist das Archiv der Mailingliste GameDev-Algos: "

Fragen? " Fragen?