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

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

Embed Size (px)

Citation preview

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

Displacement Mapping

Olaf Müller

Universität Osnabrück

20.11.2002

Vortrag im Rahmen des Seminars Computergrafik II

Dynamische Generierung detaillierter Geometrien

Page 2: Displacement Mapping Olaf Müller Universität Osnabrück 20.11.2002 Vortrag im Rahmen des Seminars Computergrafik II Dynamische Generierung detaillierter

Inhalt1. Motivation

2. Konzept

3. Algorithmus

4. Level of Detail

5. Hardware Acceleration

6. Inverses Displacement Mapping

7. Fazit und Ausblick

Page 3: Displacement Mapping Olaf Müller Universität Osnabrück 20.11.2002 Vortrag im Rahmen des Seminars Computergrafik II Dynamische Generierung detaillierter

Motivation

Mehr Realismus in 3D-Szenen!

Bump Mapping

- flache Silhouette

- keine Schatten

Page 4: Displacement Mapping Olaf Müller Universität Osnabrück 20.11.2002 Vortrag im Rahmen des Seminars Computergrafik II Dynamische Generierung detaillierter

Motivation II

=> mehr Polygone

=> hohe Bandbreite

Lösung: kompakte Repräsentation

Also: Geometrie verfeinern

Page 5: Displacement Mapping Olaf Müller Universität Osnabrück 20.11.2002 Vortrag im Rahmen des Seminars Computergrafik II Dynamische Generierung detaillierter

Konzept

Grobgeometrie + Displacement Map => Feingeometrie

hellere Texel bedeuten stärkere Verschiebung

Page 6: Displacement Mapping Olaf Müller Universität Osnabrück 20.11.2002 Vortrag im Rahmen des Seminars Computergrafik II Dynamische Generierung detaillierter

Ausgangssituation

Dreieck D gegeben mit 3 Vertizes V1,V2, V3

Je Vertex V gegeben:

- MC-Koordinaten P=(x,y,z)

- Textur-Koordinaten (u,v)

- Normale (n)

- Neu: Displacement-Koordinaten (u,v)

Page 7: Displacement Mapping Olaf Müller Universität Osnabrück 20.11.2002 Vortrag im Rahmen des Seminars Computergrafik II Dynamische Generierung detaillierter

TesselationJedes Dreieck unterteilen

Gegeben: Displacement Map mit n*m Texeln

Wähle pro Texel einen Vertex

0 1

1 0

regelmässiges, lückenloses Raster

01 0,5

Page 8: Displacement Mapping Olaf Müller Universität Osnabrück 20.11.2002 Vortrag im Rahmen des Seminars Computergrafik II Dynamische Generierung detaillierter

Subtexel Accuracy

Wenn (u,v) nicht auf Texel landet?

Interpolation zwischen den DP-Werten

Subtexel heißt nicht Subpixel!

=> Subtexel accuracy

Page 9: Displacement Mapping Olaf Müller Universität Osnabrück 20.11.2002 Vortrag im Rahmen des Seminars Computergrafik II Dynamische Generierung detaillierter

T-Vertizes und Cracks

Vertizes auf Kanten oder Ecken genauer betrachten

Unterschiedliche Vertexanzahl bei zwei adjazenten Kanten => T-Vertizes

=> Cracks!

Sie haben bzgl. verschiedener Flächen verschiedene (u,v)-Paare

V1

V2F1

F2

Page 10: Displacement Mapping Olaf Müller Universität Osnabrück 20.11.2002 Vortrag im Rahmen des Seminars Computergrafik II Dynamische Generierung detaillierter

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

Page 11: Displacement Mapping Olaf Müller Universität Osnabrück 20.11.2002 Vortrag im Rahmen des Seminars Computergrafik II Dynamische Generierung detaillierter

LOD

Entfernte Objekte brauchen keine feine Geometrie

Mip Mapping liefert geringer aufgelöste DP-Maps

In Abhängigkeit von der Entfernung zur Kamera neu tesselieren.

DP-Maps: grob, weniger grob, fein, noch feiner...

Page 12: Displacement Mapping Olaf Müller Universität Osnabrück 20.11.2002 Vortrag im Rahmen des Seminars Computergrafik II Dynamische Generierung detaillierter

Adaptive Tesselation I

große Objekte müssen nicht komplett fein

tesseliert werden.

Nahe an der Kamera: fein;

weiter entfernt: grob

Page 13: Displacement Mapping Olaf Müller Universität Osnabrück 20.11.2002 Vortrag im Rahmen des Seminars Computergrafik II Dynamische Generierung detaillierter

Adaptive Tesselation II

Teile des Objektes weisen wenig Details auf

Dort ist feine Geometrie unnötig

Bereiche mit viel Details: Varianz der Flächennormalen

Bereiche mit wenig Details: lokale Umgebungen vergleichen

Page 14: Displacement Mapping Olaf Müller Universität Osnabrück 20.11.2002 Vortrag im Rahmen des Seminars Computergrafik II Dynamische Generierung detaillierter

Eine Geometrie/viele DPMaps

Nur eine Grobgeometrie

merken

Je nach Displacement Map: anderes

Objekt

Page 15: Displacement Mapping Olaf Müller Universität Osnabrück 20.11.2002 Vortrag im Rahmen des Seminars Computergrafik II Dynamische Generierung detaillierter

Hardware Acceleration

Bisher: GPU kann keine neuen Vertizes erzeugen!

Also: Remeshing Unit hinzufügen

Entweder vor Transformation oder vor und nach Transformation

Matrox Parhelia, ATI Radeon 9700, Nvidia Geforce FX

Page 16: Displacement Mapping Olaf Müller Universität Osnabrück 20.11.2002 Vortrag im Rahmen des Seminars Computergrafik II Dynamische Generierung detaillierter

Inverses DisplacementGegeben: Feine Geometrie

Gesucht: Grobe Geometrie und Displacement Map

Reduktion auf <1% der Feingeometrie; Fehler <0.1%

Mesh Simplification

Page 17: Displacement Mapping Olaf Müller Universität Osnabrück 20.11.2002 Vortrag im Rahmen des Seminars Computergrafik II Dynamische Generierung detaillierter

Fazit und Ausblick

Realistischer als Bump Mapping

Optimierung durch LOD

In Hardware implementierbar

Hohe Kompression bei grosser Genauigkeit

Kompression der Displacement Maps?!