Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Mapping-Techniken 1 Visualisierung mit C++ / OpenGL - SS 2008 Motivation Bisher sind alle Oberflächen (polygonale Objekte, später auch parametrisierte.

Ähnliche Präsentationen


Präsentation zum Thema: "Mapping-Techniken 1 Visualisierung mit C++ / OpenGL - SS 2008 Motivation Bisher sind alle Oberflächen (polygonale Objekte, später auch parametrisierte."—  Präsentation transkript:

1 Mapping-Techniken 1 Visualisierung mit C++ / OpenGL - SS 2008 Motivation Bisher sind alle Oberflächen (polygonale Objekte, später auch parametrisierte Freiformflächen) glatt – im Gegensatz zu wirklich existierenden natürlichen Oberflächen. ? +

2 Mapping-Techniken 2 Visualisierung mit C++ / OpenGL - SS 2008 Motivation Die explizite Wiedergabe von Oberflächendetails ist oft zu aufwendig (Modellierung und Rendering) und wird deshalb durch die Anwendung verschiedenster Mapping-Techniken simuliert. Am Anfang stand das reine Texture Mapping (Catmull 1974): (...) Projektion (zweidimensionaler) (Strukturen und) Muster auf die Oberfläche von Körpern (...) Darauf aufbauend existieren mittlerweile verschiedenste Varianten, viele davon Hardware-unterstützt! Entsprechend wird heute die Simulation von Oberflächendetails i.d.R. mittels Bitmaps, also 2D-Bildern, durchgeführt.

3 Mapping-Techniken 3 Visualisierung mit C++ / OpenGL - SS 2008 Ausprägungen JahrName(n)VerfahrenMerkmal 1974CatmullTexture MappingFarbe 1976Blinn, NewellReflection MappingReflexionen 1978BlinnBump MappingNormalen 1985GardenerTransparency MappingTransparenz 1986GreeneEnvironment MappingReflexionen 1987P IXAR Displacement MappingForm, Geometrie StanzeTransparency Map Bump Map Texture Map Weitere Verfahren: Procedural Mapping, 3D Texture Mapping, … Texture Mapping

4 Mapping-Techniken 4 Visualisierung mit C++ / OpenGL - SS 2008 Abbildung Problemstellungen Realisierung der Abbildung? Speicherung der Abbildungsvorschrift? Ziele Darstellung von Oberflächendetails (Materialien) Ohne aufwändige Geometrieberechnung Ohne aufwändige Repräsentation Ohne aufwändigeres Rendering All it takes is for the rendered image to look right. (Jim Blinn, SIGGRAPH84) üblich: 2 Schritte Texture Mapping

5 Mapping-Techniken 5 Visualisierung mit C++ / OpenGL - SS 2008 Schritt B Gängig: Speicherung der Abbildungswerte in Bitmap (Texture Map) Bsp.: Alternativ: Prozedurale Erzeugung mit Schritt A Abbildung 3D-Punkt-Koordinaten auf 2D-Textur-Koordinaten Zusammen: Für sichtbare Vertices Für Pixel innerhalb sichtbarer Polygone: Interpolation Texture Mapping

6 Mapping-Techniken 6 Visualisierung mit C++ / OpenGL - SS 2008 Texture Mapping Begriffe: Texture Map:Das zu mappende Bild oder Muster (Realbild oder synthetisches Bild) Texel:Einzelelemente (Pixel) der Texture Map Prinzip: Texture Map Texel

7 Mapping-Techniken 7 Visualisierung mit C++ / OpenGL - SS 2008 Texture Mapping Bemerkungen: -Man unterscheidet grundsätzlich die Sichtweisen forward und inverse mapping -Im praktischen Einsatz erweist es sich oft als sinnvoll den eigentlichen Mapping Vorgang zweigeteilt durchzuführen (hier in der Sichtweise forward mapping): a)Zunächst wird die Textur durch eine geeignete (einfache) Abbildung auf eine einfache Zwischenfläche (intermediate surface) projiziert -> s-mapping Man benutzt Rechteck, Box, Zylinder, Kugel b)Von dort wird die Textur auf das wirklich zu texturierende Objekt (mit einer allgemeinen Fläche) übertragen. -> o-mapping

8 Mapping-Techniken 8 Visualisierung mit C++ / OpenGL - SS 2008 (0,0) (1,1) Rechteck (Schritt A) Beispiel: Zwischenobjekt planares Rechteck (Schritt A) Gegeben (0,0,0)(b,0,0) (b,h,0)(0,h,0) x y z Bestimmung der Textur-Koordinaten u v (0,0)(1,0) (1,1)(0,1) ? (0,0) (1,1) Texture Mapping

9 Mapping-Techniken 9 Visualisierung mit C++ / OpenGL - SS 2008 Beispiel: Zwischenobjekt Kugel Kugelkoordinaten: mit: Abbildung planares Rechteck auf Kugel Verzerrungen Daher: Einschränkung auf Teilkugel Bestimmung der Textur-Koordinaten (Bsp.) x y z r Texture Mapping

10 Mapping-Techniken 10 Visualisierung mit C++ / OpenGL - SS 2008 Beispiel: Zwischenobjekt Kugel Teilkugel: x y z r D.h.: Beispiel: Texture Mapping

11 Mapping-Techniken 11 Visualisierung mit C++ / OpenGL - SS 2008 Texture Mapping Beispiel: Zwischenobjekt Zylinder

12 Mapping-Techniken 12 Visualisierung mit C++ / OpenGL - SS 2008 Texture Mapping Beispiel: Zwischenobjekte Planar Zylinder Kugel

13 Mapping-Techniken 13 Visualisierung mit C++ / OpenGL - SS 2008 Texture Mapping Techniken des o-mappings: 1. Reflexionsstrahl 2. Objektzentrum 3. Normalenvektor 4. Hilfsobjektnormale

14 Mapping-Techniken 14 Visualisierung mit C++ / OpenGL - SS 2008 Texture Mapping Inverses Mapping mit Zwischenobjekt:

15 Mapping-Techniken 15 Visualisierung mit C++ / OpenGL - SS 2008 Texture Mapping Texture Mapping und Aliasing: Texture Mapping ist äußerst anfällig für Aliasing-Effekte: -Ein Pixel in Bildschirmkoordinaten kann nach der Rückprojektion auf die Textur dort den Bereich mehrerer Texels überdecken -> Abtastung? -> idealerweise: Integral, Praxis: Samples + Filterung Minification

16 Mapping-Techniken 16 Visualisierung mit C++ / OpenGL - SS 2008 Texture Mapping Texture Mapping und Aliasing: (Fortsetzung) Texture Mapping ist äußerst anfällig für Aliasing-Effekte: -umgekehrt: Ein Texel auf der Textur kann in Bildschirm- koordinaten mehrere Pixel überdecken -> Abtastung? -Texture Maps werden i. A. periodisch aneinandergereiht, um eine größere Fläche zu bedecken -> Vorsicht: Periodizität und Abtasttheorem! => Oversampling, Filterung und Mip-Mapping Magnification Minification-Problem

17 Mapping-Techniken 17 Visualisierung mit C++ / OpenGL - SS 2008 Bump Mapping Reines Texture Mapping erzeugt den Eindruck einer texturierten aber glatten/ebenen Oberfläche. Um die Oberfläche aufzurauhen und dreidimensionaler wirken zu lassen wird beim Bump Mapping nun nicht die Geometrie der Oberfläche selbst verändert, sondern die Normalen bei der Auswertung des Beleuchtungsmodells manipuliert: Simulation von Oberflächenunebenheiten auf eigentlich glatten Oberflächen durch Veränderung der Normalenvektoren der Geometrie.

18 Mapping-Techniken 18 Visualisierung mit C++ / OpenGL - SS 2008 Bump Mapping Grundlegende Beobachtung:

19 Mapping-Techniken 19 Visualisierung mit C++ / OpenGL - SS 2008 Bump Mapping Verfahren: Die Veränderung der Normalenvektoren erfolgt prozedural oder unter Verwendung von Texture Maps, deren Grauwerte ein Maß für die Abweichung darstellen. Es können regelmäßige Strukturen (z. B. Golfball) als auch unregelmäßige Strukturen (z. B. Baumrinde) simuliert werden. Betrachtet man die Silhouette eines mit Bump Mapping dargestellten Körpers, so merkt man jedoch bei genauerem Hinsehen, daß die Oberfläche in Wirklichkeit eben ist.

20 Mapping-Techniken 20 Visualisierung mit C++ / OpenGL - SS 2008 Bump Mapping Beispiele:

21 Mapping-Techniken 21 Visualisierung mit C++ / OpenGL - SS 2008 Displacement Mapping Über die eigentliche Oberfläche wird ein Höhenfeld gelegt, dessen einzelne Punkte in Richtung der Oberflächennormalen anhand einer Texture Map verschoben werden. Hier werden also tatsächlich Oberflächenpunkte (von ihrem Platz) bewegt! + Silhouette- schwer kontrollierbare Polygonanzahl Beispielanwendung: Landschaftsmodelle Silhouette schwer kontrollierbare Polygonanzahl

22 Mapping-Techniken 22 Visualisierung mit C++ / OpenGL - SS 2008 Opacity Mapping / Transparency Mapping Ähnlich dem Alpha-Kanal bei Bildern. Das Objekt, auf das eine Opacity Map gelegt wird, kann entsprechend der verwendeten Bildvorlage auf seiner ganzen Oberfläche oder nur stellenweise (graduell) transparent sein.

23 Mapping-Techniken 23 Visualisierung mit C++ / OpenGL - SS 2008 Procedural Mapping Allgemeine Methode, die den Umstand beschreibt, dass eine algorithmische Beschreibung die Grundlage des verwendeten Mapping-Verfahrens darstellt. Dieses Prinzip wird i.d.R. für 3D-Texturen angewendet. Beispiel: Simulation von Unregelmäßigkeit

24 Mapping-Techniken 24 Visualisierung mit C++ / OpenGL - SS D (Texture) Mapping Statt einem 2D-Bild wird eine (prozedurale) Map benutzt, die an jedem Punkt im 3D-Raum definiert ist. Mittels prozeduralen Ansätzen und geeigneten mathematischen Funktionen lassen sich wirklichkeitsgetreue, dreidimensionale Muster erzeugen. Holzmaserung Perlin Marmor

25 Mapping-Techniken 25 Visualisierung mit C++ / OpenGL - SS 2008 Motivation Bisher:Texturkoordinaten bleiben fest, auch bei Bewegung Objekt / Beobachter Problem: ungeeignet für spiegelnde Objekte (z.B. glänzende Kugel) Korrekte Simulation des Lichtwegs durch Gesetze der geometrischen Optik Aber: Software-Rendering! Keine GPU-Unterstützung! Kein Echtzeitverhalten! Übliche Lösung: Raytracing Ziel des Environment Mappings:Approximation von Reflexionen mit Hilfe der Textur-Hardware ! Environment Mapping

26 Mapping-Techniken 26 Visualisierung mit C++ / OpenGL - SS 2008 Historisch ältestes Verfahren: Sphere Mapping Normale Reflexionsstrahl Sichtstrahl Reflektierende Kugel Bildebene Vorstellung: Betrachter sehr weit entfernt, Kugel sehr klein hintere Hälfte vordere Hälfte Sphere Map Geometrie Environment Mapping

27 Mapping-Techniken 27 Visualisierung mit C++ / OpenGL - SS 2008 Realisierung von Schritt A Abbildung 3D-Punkt-Koordinaten auf 2D-Textur-Koordinaten: Reflexionsvektor Reflexionsgesetz Reflexionsrichtungen Textur-Koordinaten Reflexionsgesetz: Geometrie-Setup: Einheitskugel im Ursprung Zuordnung: Punkt-Koord. Textur-Koord. x 1 y z u 1 0 v Environment Mapping

28 Mapping-Techniken 28 Visualisierung mit C++ / OpenGL - SS 2008 Normale: Sichtrichtung: Nach Refexionsgesetz: Nach n auflösen, normalisieren: Resultat: Resultat: x 1 y zu 1 0 v Environment Mapping

29 Mapping-Techniken 29 Visualisierung mit C++ / OpenGL - SS 2008 Beispiel Wichtige Probleme Sphere Map gilt nur für einen Beobachtungspunkt! Dynamische Neuberechnung der Sphere Map ist aufwendig!Verbesserungen Dual-Paraboloid-Mapping Cube Mapping (in heutiger Grafik-Hardware implementiert) Environment Mapping

30 Mapping-Techniken 30 Visualisierung mit C++ / OpenGL - SS 2008 Bubble Environment Mapping

31 Mapping-Techniken 31 Visualisierung mit C++ / OpenGL - SS 2008 Environment Mapping Beispiele:

32 Mapping-Techniken 32 Visualisierung mit C++ / OpenGL - SS 2008 Environment Mapping Beispiele:

33 Mapping-Techniken 33 Visualisierung mit C++ / OpenGL - SS 2008 Environment Mapping Beispiele:

34 Mapping-Techniken 34 Visualisierung mit C++ / OpenGL - SS 2008 Chrome / Reflection Mapping Abbildung eines willkürlichen Musters aus dem zweidimensionalen Texturraum (chrome map) auf eine reflektierende Oberfläche. Die Textur bleibt an einem festen Punkt im Raum. Oft wird künstlich für Unschärfe der Textur gesorgt.

35 Mapping-Techniken 35 Visualisierung mit C++ / OpenGL - SS 2008 Resümee -Alle Arten von Mapping-Techniken sind äußerst anfällig für Aliasing-Effekte! -Verschiedene Arten von Mapping-Techniken können miteinander kombiniert auf das gleiche Objekt angewendet werden. Dies leisten heute verfügbare Werkzeuge Rendering- und Animationspakete standardmäßig. -Mapping-Techniken bilden die wesentliche Grundlage für praktisch alle heute kommerziell eingesetzten Computergrafik-Techniken.

36 Mapping-Techniken 36 Visualisierung mit C++ / OpenGL - SS 2008 Resümee Beispiel: Chrome / Reflection Mapping + Ray Tracing


Herunterladen ppt "Mapping-Techniken 1 Visualisierung mit C++ / OpenGL - SS 2008 Motivation Bisher sind alle Oberflächen (polygonale Objekte, später auch parametrisierte."

Ähnliche Präsentationen


Google-Anzeigen