Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Displacement Mapping Dynamische Generierung detaillierter Geometrien

Ähnliche Präsentationen


Präsentation zum Thema: "Displacement Mapping Dynamische Generierung detaillierter Geometrien"—  Präsentation transkript:

1 Displacement Mapping Dynamische Generierung detaillierter Geometrien
Vortrag im Rahmen des Seminars Computergrafik II Olaf Müller Universität Osnabrück

2 Inhalt 1. Motivation 2. Konzept 3. Algorithmus 4. Level of Detail
5. Hardware Acceleration 6. Inverses Displacement Mapping 7. Fazit und Ausblick

3 Mehr Realismus in 3D-Szenen!
Motivation Mehr Realismus in 3D-Szenen! Bump Mapping - flache Silhouette Wunsch nach noch mehr Realismus! Neben aufwändigeren Beleuchtungsmodellen (die Axel Block uns später genauer beschreiben wird), sorgt eine detailliertere Oberfläche für mehr Realismus. 1978 Blinn: Bump Mapping: Die Normale wird fuer jedes Pixel der Fläche verändert. Dadurch läßt sich der Eindruck einer rauhen, detailreichen Oberfläche schaffen. Aber: Geometrie wird nicht verändert: Kein Schattenwurf und wenn man flach über die Fläche schaut, sieht man nichts! Es existiert keine physikalische Entsprechung! Also: Geometrie verfeinern! - keine Schatten

4 Motivation II Also: Geometrie verfeinern => mehr Polygone
=> hohe Bandbreite Also: Geometrie verfeinern! Heutige Modelle haben und mehr Punkte (Jurassic Parc, Enterprise, Ice Age, Monster AG) Pro Dreieck: 3 * (MC+TC+N+Col+Topologie) = 3* ( ) = 3* (40)= 120 Byte Dreiecke: 120 * = 12MB fuer ein Modell Die muessen erstmal durch eine Telefonleitung vom Server zum User kommen! Beispiel: Digital Cinema! Und wenn sie da sind: Pro Sekunde kommen etliche solcher Objekte ins Bild und verschwinden wieder: Hohe Bandbreite zwischen Hauptspeicher/Platte und Grafikspeicher. Kompression! (offline) Dekompression (online) mit hoher Rechenpower unter dem Schreibtisch: Nicht nur GPU sondern auch CPU! Lösung: kompakte Repräsentation

5 Konzept Grobgeometrie + Displacement Map => Feingeometrie
Bevor der Koerper vom MC ins WC gebracht wird, passiert folgendes: Eine relativ simple Grundgeometrie mit wenigen Dreiecken wird mit Hilfe einer Displacement Map in eine komplexe, hoch aufgeloeste Geometrie verwandelt. Dazu: 2 Schritte: 1.) Grobgeometrie verfeinern (Tesselation) 2.) Alle neuen Vertizes verschieben (Displacement) hellere Texel bedeuten stärkere Verschiebung

6 Ausgangssituation Dreieck D gegeben mit 3 Vertizes V1,V2, V3
Je Vertex V gegeben: - MC-Koordinaten P=(x,y,z) - Textur-Koordinaten (u,v) Grobgeometrie aus z.B. 100 Dreiecken ist gegeben Jedes Dreieck wird einzeln verarbeitet. Alte Bekannte sind: - Die Raumkoordinaten des Vertex Die Texturkoordinaten Die Flächennormale (kann pro Ausgangsvertex gegeben sein oder auch als Normalmap) Neu dazu kommen Displacement-Map-Koordinaten. Sie verweisen in die DisplacementMap. Die kann entweder 8 oder 16 Bit-Werte enthalten. Diese koennen entweder Fliesskommazahlen sein oder ganze Zahlen, die spaeter mit der groessten Verschiebung skaliert werden. - Normale (n) - Neu: Displacement-Koordinaten (u,v)

7 Tesselation Jedes Dreieck unterteilen
Gegeben: Displacement Map mit n*m Texeln Wähle pro Texel einen Vertex regelmässiges, lückenloses Raster Grobe Geometrie verfeinern! Stichwort Tesselation: Amir wird noch ausfuehrlich darueber sprechen. Aber wie stark? Pro Texel einen Vertex. Dann geht nix verloren! Wesentlicher Unterschied zum TextureMapping, wo die Zahl der Pixel die Interpolation bestimmt. 1 0,5

8 Subtexel Accuracy Wenn (u,v) nicht auf Texel landet?
Interpolation zwischen den DP-Werten => Subtexel accuracy Fliesskommawerte fuer u und v. => Subtexel heißt nicht Subpixel!

9 T-Vertizes und Cracks Vertizes auf Kanten oder Ecken genauer betrachten Sie haben bzgl. verschiedener Flächen verschiedene (u,v)-Paare Unterschiedliche Vertexanzahl bei zwei adjazenten Kanten => T-Vertizes Wenn auf Kante k bzgl. Flaeche A eine andere Anzahl von Vertizes liegt (oder ein Vertex eine andere Position hat), entsteht ein T-Vertex. Wenn dieser verschoben wird, entsteht ein Crack und die Flaechen sind nicht mehr zusammenhaengend! Also: Kanten immer V1 F2 => Cracks! F1 V2

10 Displacement Für jeden Vertex den Displacementwert aus Map holen und Vertex verschieben P’ = P + n*d(u,v) Nachdem Dreieck verschoben: Normalen berechnen Dreieck durch die VP schicken

11 LOD Entfernte Objekte brauchen keine feine Geometrie
DP-Maps: grob, weniger grob, fein, noch feiner... Mip Mapping liefert geringer aufgelöste DP-Maps Viele viele Polygone. Das kostet Zeit; auch auf heutiger Hardware! Sinnlos, wenn die Details alle auf einem Bildschimrpixel landen. Also: Verschiedene Versionen der DP-Map generieren und je nach Entfernung nutzen. Eine Komplexitätsanalyse würde kalrstellen, ab wann sich die Neutesselierung lohnt. In Abhängigkeit von der Entfernung zur Kamera neu tesselieren.

12 Adaptive Tesselation I
große Objekte müssen nicht komplett fein tesseliert werden. Nahe an der Kamera: fein; weiter entfernt: grob evtl. erst am Schluss vergleichen!

13 Adaptive Tesselation II
Teile des Objektes weisen wenig Details auf Dort ist feine Geometrie unnötig Bereiche mit viel Details: Varianz der Flächennormalen Beispiel mit einem Peak auf ebener Fläche an die Tafel! Woher weiss man, in welchem Bereich der Fläche man noch weitere Unterteilungen vornehmen muss und wo nicht? Varianz der Flächennormalen: Weicht eine der Komponenten der Normalen mehr als ein gegebener Schwellwert von der entsprechenden Komponente der Nachbarvertizes ab? Lokale Umgebung: Durchschnittliche Höhe in disjunkten Umgebungen um der Vertex herum mit den Durchschnittshöhen der Umgebungen der benachbarten Vertizes vergleichen Bereiche mit wenig Details: lokale Umgebungen vergleichen

14 Eine Geometrie/viele DPMaps
Nur eine Grobgeometrie merken Je nach Displacement Map: anderes Objekt GPU kann hoechstens beim Clipping, welche weglassen. Was wir heute nicht machen: Hardware Accelerated Image Based Rendering: Scheibchenweise uebereinanderlegen (Tuerme von Hanoi). Es existieren verschiedene Ansätze für Hardware Displacement Mapping Erster Ansatz: Vor Trafo ins WC Neuerer Ansatz: Displacement vor Transformation und Entscheidung über Verfeinerung danach (im WC) Hier: Matrox HDM. Beispiele zeigen Microsoft ist Lizenznehmer. DirectX 9 enthält HDM.

15 Hardware Acceleration
Bisher: GPU kann keine neuen Vertizes erzeugen! Also: Remeshing Unit hinzufügen GPU kann hoechstens beim Clipping, welche weglassen. Was wir heute nicht machen: Hardware Accelerated Image Based Rendering: Scheibchenweise uebereinanderlegen (Tuerme von Hanoi). Es existieren verschiedene Ansätze für Hardware Displacement Mapping Erster Ansatz: Vor Trafo ins WC Neuerer Ansatz: Displacement vor Transformation und Entscheidung über Verfeinerung danach (im WC) Hier: Matrox HDM. Tesselation Rate frei einstellbar: Auch float! Beispiele zeigen Microsoft ist Lizenznehmer. DirectX 9 enthält HDM. Entweder vor Transformation oder vor und nach Transformation Matrox Parhelia, ATI Radeon 9700, Nvidia Geforce FX

16 Inverses Displacement
Gegeben: Feine Geometrie Gesucht: Grobe Geometrie und Displacement Map Mesh Simplification Reduktion auf <1% der Feingeometrie; Fehler <0.1% Modellierer erstellen hochaufgelöste Modelle! Die grobe Geometrie sollte natuerlich so beschaffen sein, dass sie selbst die Form der feinen Geometrie gut nähert (also kein Wuerfel im Inneren von Raumschiffen...ausser es ist eins von den Borg) Wie findet man die grobe Geometrie? Mehr dazu ggf. Im Februar: Viele viele Algorithmen! D3DX soll einen Map-Finder haben. Fehlerangabe bezieht sich auf das wiederhergestellte Modell! Das Schöne daran: Man kann offline tagelang über dieses Problem nachdenken und der Entpackvorgang geschieht dann online! Pfer: > 502 Hase: > 388

17 Fazit und Ausblick Realistischer als Bump Mapping
Optimierung durch LOD In Hardware implementierbar LOD und adaptive Tesselation Bereits in Chips gegossen Grobe Geometrie, mittlere DPMap und feine NormalMap (berechnet aus feiner DPMap) Fraktale Kompression der DPMap: a) Kompression b) LOD umsonst Hohe Kompression bei grosser Genauigkeit Kompression der Displacement Maps?!


Herunterladen ppt "Displacement Mapping Dynamische Generierung detaillierter Geometrien"

Ähnliche Präsentationen


Google-Anzeigen