Christina Nell 3D-Computergrafik
Was ist 3D-Computergrafik? 3D graphics is the art of cheating without getting caught. (unbekannte Quelle) Folie 2/52
Inhalt Beleuchtung Shading Texturierung Texturfilterung Zusammenfassung Folie 3/52
Beleuchtung Beleuchtung Grundlagen Lichtquellen Transform and Lighting Shading Texturierung Texturfilterung Zusammenfassung Folie 4/52
Grundlagen Beleuchtung in der Computergrafik beruht auf einfachen physikalischen Modellen Folie 5/52
Grundlagen Beleuchtung in der Computergrafik beruht auf einfachen physikalischen Modellen Vertex: Punkt im dreidimensionalen Raum für jeden Vertex können Eigenschaften wie z.b. Farbe definiert werden Folie 6/52
Grundlagen Beleuchtung in der Computergrafik beruht auf einfachen physikalischen Modellen Vertex: Punkt im dreidimensionalen Raum für jeden Vertex können Eigenschaften wie z.b. Farbe definiert werden Polygon: Verbund von drei oder mehr Vertizes Folie 7/52
Grundlagen Beleuchtung in der Computergrafik beruht auf einfachen physikalischen Modellen Vertex: Punkt im dreidimensionalen Raum für jeden Vertex können Eigenschaften wie z.b. Farbe definiert werden Polygon: Verbund von drei oder mehr Vertizes Normalenvektor: Vektor, der senkrecht auf einer Oberfläche steht Folie 8/52
Lichtquellen Globale Lichtquellen befinden sich in unendlich großer Entfernung beleuchten die gesamte Szene Folie 9/52
Lichtquellen Globale Lichtquellen befinden sich in unendlich großer Entfernung beleuchten die gesamte Szene Beispiel: gerichtetes Licht z.b. die Sonne Folie 10/52
Lichtquellen Lokale Lichtquellen befinden sich innerhalb der Szene beleuchten nur einen bestimmten Teil der Szene Folie 11/52
Lichtquellen Lokale Lichtquellen befinden sich innerhalb der Szene beleuchten nur einen bestimmten Teil der Szene Beispiele: Punktlichtquellen strahlen Licht in alle Richtungen ab z.b. eine Deckenlampe in einem Zimmer Folie 12/52
Lichtquellen Lokale Lichtquellen befinden sich innerhalb der Szene beleuchten nur einen bestimmten Teil der Szene Beispiele: Punktlichtquellen strahlen Licht in alle Richtungen ab z.b. eine Deckenlampe in einem Zimmer Spotlights strahlen Licht in Form eines Lichtkegels in eine Richtung ab z.b. ein Scheinwerferspot auf einer Konzertbühne Folie 13/52
Transform and Lighting Vor 1999: Berechnungen für die Beleuchtung auf der CPU Kapazität der CPU wird auch durch Systemdienste und andere Berechnungen belastet Kompromisse zu Lasten der Bildqualität Folie 14/52
Transform and Lighting Vor 1999: Berechnungen für die Beleuchtung auf der CPU Kapazität der CPU wird auch durch Systemdienste und andere Berechnungen belastet Kompromisse zu Lasten der Bildqualität 1999: Vorstellung der nvidia GeForce 256, die diese Berechnungen auf der GPU durchführt spezialisierte Engines übernehmen die Berechnungen schneller Kapazität der CPU steht für andere Anwendungen zur Verfügung Folie 15/52
Shading Beleuchtung Shading Funktionsweise Flat Shading Gouraud Shading Phong Shading Texturierung Texturfilterung Zusammenfassung Folie 16/52
Funktionsweise Beleuchtung ist der Helligkeitswert, während es beim Shading um Reflektion und/oder Lichtdurchlässigkeit geht (David Kirk, nvidia) Folie 17/52
Funktionsweise Beleuchtung ist der Helligkeitswert, während es beim Shading um Reflektion und/oder Lichtdurchlässigkeit geht (David Kirk, nvidia) Was passiert, nachdem das Licht auf die Oberfläche getroffen ist? Wie reagiert das Material auf das Licht? Wieviel Licht wird reflektiert? Folie 18/52
Funktionsweise Rasterizer erhält in jeder Scanline die Endpunkte des aktuellen Dreiecks Für diese beiden Punkte werden jeweils die Shading-Werte berechnet Werte zwischen den Endpunkten können mit unterschiedlichen Algorithmen interpoliert werden Folie 19/52
Flat Shading Einfachster Ansatz: Algorithmus wählt für jedes Dreieck eine Farbe aus Anwenden der Farbe auf das ganze Dreieck Problem: Mach-Band-Effekt Folie 20/52
Mach-Band-Effekt Folie 21/52
Gouraud Shading Interpoliert aufgrund der in den Vertizes gespeicherten Farbwerte und deren Oberflächennormalen Verringert den Mach-BandEffekt Folie 22/52
Gouraud Shading Interpoliert aufgrund der in den Vertizes gespeicherten Farbwerte und deren Oberflächennormalen Verringert den Mach-BandEffekt Probleme: Verlust besonders hoher/ niedriger Intensitäten Verlust von Glanzlichtern Dennoch: bessere Bildqualität als Flat Shading bei annehmbaren Rechenaufwand Folie 23/52
Phong Shading Interpoliert aus den Normalen in den Vertizes für jedes Pixel eine Oberflächennormale Farbwert des Pixels wird mithilfe eines Beleuchtungsmodells für jeden Farbkanal bestimmt Verbesserung des Gouraud Shading, aber hoher Rechenaufwand Folie 24/52
Texturierung Beleuchtung Shading Texturierung Texture Mapping Bump Mapping Normal Mapping Displacement Mapping Parallax Mapping Texturfilterung Zusammenfassung Folie 25/52
Texture Mapping u Textur: v zweidimensionales Bild (mit Koordinaten (u,v)) auch: Texture Map Folie 26/52
Texture Mapping u Textur: v zweidimensionales Bild (mit Koordinaten (u,v)) auch: Texture Map Texel: einzelnes Pixel innerhalb der Texture Map (kurz für Texture Pixel) Folie 27/52
Texture Mapping u Textur: zweidimensionales Bild (mit Koordinaten (u,v)) auch: Texture Map Texel: v einzelnes Pixel innerhalb der Texture Map (kurz für Texture Pixel) Texture Mapping: Abbilden einer Textur auf ein Objekt der Szene Zweidimensionales Texture Mapping Dreidimensionales Texture Mapping Folie 28/52
Zweidimensionales Texture Mapping 2 Koordinatensysteme: Objekt- und Texturkoordinatensystem Umrechnung nötig parametrisch: die Textur ist am Objekt verankert Berechnen der Texturkoordinaten mithilfe baryzentrischer Koordinaten parametrisches Texture Mapping Folie 29/52
Zweidimensionales Texture Mapping 2 Koordinatensysteme: Objekt- und Texturkoordinatensystem Umrechnung nötig parametrisch: die Textur ist am Objekt verankert Berechnen der Texturkoordinaten mithilfe baryzentrischer Koordinaten parametrisches Texture Mapping non-parametrisch: Abbildung der Texture Map durch Projektion verschiedene Arten der Projektion denkbar: planar, zylindrisch, sphärisch,... non-parametrisches Texture Mapping Folie 30/52
Dreidimensionales Texture Mapping Auch: prozedurales Texture Mapping Berechnung der Farbe mit einer gegebenen Prozedur, anhand der Pixelkoordinaten Ergebnis vergleichbar mit der Fertigung des Objekts aus einem Block des gewünschten Materials, z.b. Marmor Folie 31/52
Bump Mapping Anwendung des Texture Mapping Änderung der Reaktionseigenschaft der Oberfläche bezüglich des Lichteinfalls Folie 32/52
Bump Mapping Anwendung des Texture Mapping Änderung der Reaktionseigenschaft der Oberfläche bezüglich des Lichteinfalls Verwendung einer Height Map, die die Störung der Normalen speichert Speicherung der Height Map als Graustufenbild Folie 33/52
Bump Mapping Anwendung des Texture Mapping Änderung der Reaktionseigenschaft der Oberfläche bezüglich des Lichteinfalls Verwendung einer Height Map, die die Störung der Normalen speichert Speicherung der Height Map als Graustufenbild Folie 34/52
Bump Mapping Anwendung des Texture Mapping Änderung der Reaktionseigenschaft der Oberfläche bezüglich des Lichteinfalls Verwendung einer Height Map, die die Störung der Normalen speichert Speicherung der Height Map als Graustufenbild Problem: Geometrie bleibt unverändert Folie 35/52
Normal Mapping Anwendung des Bump Mapping Oberflächennormale wird nicht verändert, sondern ersetzt Hier: Einsatz einer spezielleren Height Map (Normal Map) Speicherung als RGB-Bild Aber: gleiches Problem wie Bump Mapping Folie 36/52
Normal Mapping Folie 37/52
Displacement Mapping Ersetzt die Punkte der Oberfläche Silhouette stimmt mit der Struktur der Oberfläche überein ermöglicht Phänomene wie Verdeckung, Selbstverdeckung, Silhouetten und Selbstschattierung In Bezug auf Rechenzeit die teuerste Mapping-Technik viel zusätzliche Geometrie Folie 38/52
Parallax Mapping Motion parallax: Beobachter blickt auf ein Objekt Beobachter verschiebt seine Position scheinbare Änderung der Position des Objekts Realisierung dieses Effekts durch Verzerrung der Textur ohne Parallax Mapping mit Parallax Mapping Folie 39/52
Texturfilterung Beleuchtung Shading Texturierung Texturfilterung Motivation Mipmaps Nearest-Neighbor-Interpolation Bilineares Filtern Trilineares Filtern Anisotropes Filtern Zusammenfassung Folie 40/52
Motivation Beim Abbilden der Textur auf das Objekt kann es zu Undersampling kommen bei sehr detail- und kontrastreichen Texturen fehlen dann Farbinformationen Aliasing! Folie 41/52
Motivation Beim Abbilden der Textur auf das Objekt kann es zu Undersampling kommen bei sehr detail- und kontrastreichen Texturen fehlen dann Farbinformationen Aliasing! 2 Ansätze zum Verhindern von Aliasing: Supersampling Folie 42/52
Motivation Beim Abbilden der Textur auf das Objekt kann es zu Undersampling kommen bei sehr detail- und kontrastreichen Texturen fehlen dann Farbinformationen Aliasing! 2 Ansätze zum Verhindern von Aliasing: Supersampling Prefiltering Folie 43/52
Mipmaps Kleinere Versionen der Textur werden vorberechnet Entstehung einer Texturpyramide Kürzere Zugriffszeiten wegen vorberechneter Mipmap Folie 44/52
Nearest-Neighbor-Interpolation Auswahl eines Texels nach dem Abstand zum Pixelmittelpunkt Farbe des ausgewählten Texels wird als Pixelfarbe verwendet Einfachste, aber auch schlechteste Methode für Texturfilterung Artefakte: bei Vergrößerung: Blockstruktur bei Verkleinerung: Aliasing Folie 45/52
Bilineares Filtern Verwendung von Mipmaps Deutlich bessere Bildqualität im Vergleich zu NearestNeighbor-Interpolation Aber: Ergebnis wirkt oft verschwommen MIP-banding Blockstruktur bei Vergrößerung Folie 46/52
Trilineares Filtern Erweiterung/ Verbesserung des bilinearen Filterns Hier: Interpolation auch zwischen aufeinander folgenden Mipmapstufen Innerhalb einer Mipmapstufe Verwenden von bilinearem Filtern Blockstruktur bei Vergrößerung Folie 47/52
Anisotropes Filtern Anisotropie: Richtungsabhängigkeit einer Eigenschaft Abtastmuster nicht quadratisch RIP mapping Folie 48/52
Filtermethoden im Vergleich o.l.: Bilineares Filtern o.r.: Trilineares Filtern u.l.: Anisotropes Filtern Folie 49/52
Zusammenfassung Beleuchtung Shading Texturierung Texturfilterung Zusammenfassung Folie 50/52
Zusammenfassung Vereinfachen wo immer es möglich ist Geschwindigkeit Qualitativ bessere Bilder erfordern mehr Aufwand Phong Shading bessere Filtermethoden Was ist die letzte Grenze für 3D-Computergrafik? Folie 51/52
Fin. Folie 52/52