Displacement Mapping Dynamische Generierung detaillierter Geometrien

Slides:



Advertisements
Ähnliche Präsentationen
Computer Graphics Shader
Advertisements

Animation in Java 3D Ausarbeitung im Seminar Java 3D
Hauptseminar - Computer Graphics
Die Poincaré-Vermutung und ihre Geschichte
3. 3D-Betrachtungstransformationen
Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign.
• • • • • 3.2 Die projektive Erweiterung des E³
Geometrie von Objektoberflächen
Wilhelm-Raabe-Schule Fachbereich: Mathematik Thema: Lineare Funktionen
Maurer, Karl-Heinz Moderne Grafikkarten & Features DVT-Referat am
3D-Kompression Multimedia-Seminar, WS 2001/2002 Michael Weyel.
Grundlagen der Geometrie
Klicke Dich mit der linken Maustaste durch das Übungsprogramm! Ein Übungsprogramm der IGS - Hamm/Sieg © IGS-Hamm/Sieg 2007 Dietmar Schumacher Zeichnerische.
FH-Hof Texturen Richard Göbel. FH-Hof Anwendungen von Texturen Darstellung von 2D-Bildern Gestaltung von Oberflächen Simulation komplexer Geometrien...
FH-Hof Texturen Richard Göbel. FH-Hof Anwendungen von Texturen Darstellung von 2D-Bildern Gestaltung von Oberflächen Simulation komplexer Geometrien...
5.2 Schattierungsverfahren
Simulation und 3D-Programmierung Praxis: Dreiecke, Texturen, Vertex-Buffer Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung.
Subjective Contours Gaetano Kanizsa (1976)
Inhaltsverzeichnis Einleitung Der Skalenraum Anwendungsbeispiele
Java3d „Licht und Material“
Ein Seminar in Computer Grafik von Johannes Bochmann
Computergrafik Vom Dreieck zum Ego-Shooter Olaf Müller
Tesselation Vortrag im Rahmen des Seminars Computergrafik II
1 3D im Internet Vortrag im Rahmen des Seminars Webpublishing Olaf Müller Fachbereich Mathematik/Informatik Universität Osnabrück Osnabrück
Special Effects Realistischeres Rendern einer Scene.
Modellierung von Baumstrukturen mit einem einzigen Polygonnetz
ITAP Teeseminar, , Seite 1U. Koschella: Konzepte von DecaDeco (MC-Code von M. Mihalkovič) Konzepte von DecaDeco Monte-Carlo Code für dekagonale.
Maschinelles Lernen und automatische Textklassifikation
Ortsbasierte Sichtbarkeitsanalyse mit digitalen Geländemodellen auf mobilen Endgeräten Roland J. Graf Fachhochschule Salzburg.
Computergrafik – Inhalt Achtung! Kapitel ist relevant für CG-2!
Seminarvortrag (klein) Aktuelle Grafikkarten
Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. Manfred Thaller AM 3 Übung: Softwaretechnologie.
4.1 Motivation Es existieren verschiedenste Einflussfaktoren auf die verwendete Modellierungsmethode und Objektrepräsentation: - Objekt existiert real.
3D- Spieleprogrammierung
Ändern von Merkmalen Geometrie Topologie Attribute.
Effiziente Algorithmen
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
§3 Allgemeine lineare Gleichungssysteme
Polynome und schnelle Fourier-Transformation
Shader.
§5-1 §5 Mapping-Techniken Computergrafik - SS Motivation Bisher sind alle Oberflächen (polygonale Objekte, später auch parametrisierte Freiformflächen)
Verhalten von Objekten in der Szene
Koordinaten- geometrie
Medizinische Visualisierung
Objekte und ihre Beschreibung
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
Landkarten Landkarten sind Tesselationen mit folgenden Eigenschaften:
Erfahrungen mit Microsoft DirectX 8 W. Krug, April 2002.
Terrain Rendering USF 2001 Dirk Ringe (Phenomic Game Development) Stefan Röttger (Universität Stuttgart)
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.
Geometric Representation
Neuer Abschnitt: Modellierung des Raumes
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.
Routenplanung querfeldein - Geometric Route Planning
Grundlagen der Geometrie
Mesh Parametrisierung
Marching Cubes von Arnfried Weber.
Judith Pietzner1 Interaktives Editieren am Bildschirm Ändern von Features: Geometrie, Topologie, Attribute.
Institut für Informationssysteme Technische Universität Braunschweig Institut für Informationssysteme Technische Universität Braunschweig Verdrängung von.
COLLADA II Digital Asset Schema Release Anike Schulz Reusable Content in 3D und Simulationssystemen Prof. Thaller.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Präsentation von Markus Lugbauer
Generierung von Flächenrepräsentationen aus Punktdaten
 Präsentation transkript:

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

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

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

Motivation II Also: Geometrie verfeinern => mehr Polygone => hohe Bandbreite Also: Geometrie verfeinern! Heutige Modelle haben 100.000 und mehr Punkte (Jurassic Parc, Enterprise, Ice Age, Monster AG) Pro Dreieck: 3 * (MC+TC+N+Col+Topologie) = 3* (12+8+12+4+4) = 3* (40)= 120 Byte 100.000 Dreiecke: 120 * 100.000 = 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

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

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)

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. 0 1 1 0 1 0,5

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!

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

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

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.

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!

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

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.

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

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: 96000 -> 502 Hase: 69000 -> 388

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?!