Direkte Schattierungsverfahren (Gouraud) 5.1.5 Kontinuierliche Schattierung von Polygonen (Gouraud-Shading) bisher: Zerlegung gekrümmter Flächen (Zylinder, Kugeln, B-Spline-Flächen etc.) in Polygone (meist Drei- oder Vierecke) Einzelne Schattierung der Polygone gemäß ihrem Normalenvektor (Flat Shading) Mangelhafte Realitätstreue der Flat-Shading-Methode aufgrund störend wirkender Diskontinuitäten an den Polygongrenzen (siehe Abb. 5-5) Gouraud-Shading [H. Gouraud 1971] beseitigt die Diskontinuitäten durch Richtungsvektoren in den Vertices (statt nur eines Richtungsvektors für das ganze Polygon beim Flat-Shading) und nterpolation der Schattierung im nneren der Polygone. 3DRend2-1 Direkte Schattierungsverfahren (Gouraud) Flat-Shading: Abb. 5-5 Gegenüberstellung von Flat-Shading und Gouraud-Shading Beleuchtungsberechnung mit nur einer Flächennormale pro Polygon Gouraud-Shading: Beleuchtungsberechnung mit eigenen Normalenvektoren n i für jeden Eckpunkt P i des Polygons. Die Herleitung der Normalenvektoren n i ist aus der Originaloberfläche (z. B. Zylinder, Kegel, Bèzier- Fläche) möglich. Für jeden Eckpunkt: Berechnung der Beleuchtungsintensität i (z. B. nach dem Phong- Beleuchtungsmodell, Abb. 5-6). 3DRend2-2
Direkte Schattierungsverfahren (Gouraud) n 3 3 P 3 P P n1 1 1 2 n 2 2 Abb. 5-6 Berechnung der Lichtreflexion an den Polygonecken 3DRend2-3 Direkte Schattierungsverfahren (Gouraud) Aus den Flächennormalen der benachbarten Polygone werden die Normalen n i der Eckpunkte berechnet. Die Schattierungsrechnung erfolgt für die Eckpunkte und liefert die i. Bei der Rasterkonvertierung wird zwischen den Eckwerte i linear interpoliert ( A und B ) und damit die ntensität jedes Pixels der Rasterlinie berechnet (Abb. 5-7). y A n 2 2 4 n 1 nrasterline 4 y 1 3 n3 B Abb. 5-7 x nterpolation der ntensität (ntensität steht hier für die Leuchtdichte oder für Farbwerte usw.) Die nterpolation erfolgt nach dem gleichen arithmetischen Muster wie die nterpolation der z-werte im z-puffer-verfahren oder wie beim Zeichnen von Geraden (d. h. inkrementell, mit Ganzzahlarithmetik, Bresenham). 3DRend2-4
Direkte Schattierungsverfahren (Gouraud) Resultat: Kontinuierlich schattierte dreidimensionale Oberflächen Abb. 5-8 Gouraud-schattierte Kugeln (links 200, rechts 1000 Dreiecke) Nachteile des Gouraud-Shading, bedingt durch die lineare nterpolation: Mach-Band-Effekt (Abb. 5-5 und Abb. 5-8): Kontrastverstärkung durch das Auge an den Übergängen zwischen Polygonen Fehlen von gut ausgeprägten Glanzlichtern (Abb. 5-8 (links) und Abb. 5-11) 3DRend2-5 Direkte Schattierungsverfahren (Gouraud: Mach-Band-Effekt ) Mach-Band-Effekt in Abb. 5-5: 3DRend2-6
Direkte Schattierungsverfahren (Gouraud: Mach-Band-Effekt ) 5.1.6 Der Mach-Band-Effekt Rasterlinie x Ausschnitt x Abb. 5-9: Die lineare nterpolation der Leuchtdichte zwischen den Polygonkanten entlang der Rasterlinie führt zu einem Verlauf, der durch plötzliche Änderungen im Anstieg der ntensität gekennzeichnet ist (nicht stetig differenzierbar) 3DRend2-7 Direkte Schattierungsverfahren (Gouraud: Mach-Band-Effekt ) Der Mach-Band-Effekt: ein physiologisches Phänomen Die nformation benachbarter Rezeptoren wirkt bei der weiteren visuellen Verarbeitung lateral inhibitorisch (hemmend) auf die lokale Lichtempfindung. Modellhaft entstehen neben dem eigentlichen Helleindruck auch Signale, die dem Helligkeitsgradienten (erste Ableitung) und dem Laplacefilter-Output (Laplacian of Gaussian LoG oder auch Marr-Hildreth-Filter, zweite Ableitung) entsprechen. Die Empfindung wird insgesamt nicht nur durch die Lichtintensität selbst, sondern auch durch die Überlagerung mit ihrer ersten und zweiten räumlichen Ableitung bestimmt (Abb. 5-10). Das führt zu einer Verstärkung von Konturen (c0-unstetigkeit, Sprünge in der ntensität). n der dunklen Fläche zeigt sich eine dunklere, in den hellen Flächen eine hellere Kantenlinie. Dort, wo Konturen vorhanden sind, ist das vorteilhaft (evolutionäre Entwicklung der menschlichen visuellen Wahrnehmung), obwohl Täuschungen damit verbunden sind (photometrischer Eindruck). Bei Sprüngen in der Helligkeitsänderung (c0-stetigkeit, c1-unstetigkeit, typisch für Approximation durch ebene Polygone beim Gouraud-Shading, z.b. Zylinder) stört dieser Effekt u. U. erheblich. 3DRend2-8
Direkte Schattierungsverfahren (Mach-Band-Effekt an Kanten ) Grauwert 140 120 100 50 100 150 200 250 300 350 400 Pixel zunächst Kanten: Liegen eine helle und eine dunkle Fläche nebeneinander, beobachtet man einen dunklen Streifen auf der dunkleren Seite und einen hellen Streifen auf der helleren Seite (Kontrastverstärkung). 3DRend2-9 Direkte Schattierungsverfahren (Mach-Band-Effekt an Kanten ) Grauwertverlauf an der Kante Differentialoperator 2. Ordnung (LoG) Laplace-Output Faltung Grauwert 160 Laplace-Output 140 120 100 80 Überlagerung Kante-Laplace 50 100 150 200 250 300 350 400 Pixel Überlagerung Abb. 5-10: Kantenverstärkung durch Überlagerung von ntensität und zweiter Ableitung (modelliert) 3DRend2-10
Mach-Band-Effekt beim Gouraud-Shading m Bild mittels VP-Lupe zeigen! Objekt, mit Gouraud-Ansatz schattiert: trotz kontinuierlich ansteigendem Grauwertverlauf sieht man an der Stelle der c1-unstetigkeit einen helleren Bereich (Bildmitte) 3DRend2-11 Mach-Band-Effekt beim Gouraud-Shading Die Verarbeitung visueller nformation im menschlichen Hirn überlagert ntensität und Laplacegefilterte Helligkeitsinformation Grauwertverlauf beim Übergang zwischen Polygonen Faltung Laplace-Output Überlagerung Objekt, mit Gouraud-Ansatz schattiert: trotz kontinuierlich ansteigendem Grauwertverlauf sieht man an der Stelle der c1-unstetigkeit einen helleren Bereich (Bildmitte) 3DRend2-12
Mach-Band-Effekt beim Gouraud-Shading Zur Modellierung des Mach-Band-Effektes verwendetes LoG-Filter ( =3 win =27, oben schattiert, unten im Abtastraster) 3DRend2-13 Mach-Band-Effekt beim Gouraud-Shading Grauwertverlauf beim Übergang zwischen Polygonen Faltung Differentialoperator 2. Ordnung (LoG) 160 LoG Output Grauwert 140 120 Laplace-Output 100 80 50 100 150 200 250 300 350 400 Pixel Überlagerung Abb. 5-10: Störung der Schattierten Fläche durch Überlagerung von ntensität und zweiter Ableitung (modelliert) 3DRend2-14
Direkte Schattierungsverfahren (Gouraud: fehlende Glanzlichter ) 5.1.7 Fehlende Glanzlichter Ebenfalls auf Grund der linearen nterpolation können Glanzlichter, die auf spekulare Reflexion zurückzuführen sind, verloren gehen oder abgeschwächt/ verschmiert werden. Das wird umso kritischer, je spitzer die spekulare Reflexion ist (großes n im cos n - Term). n n 2 exakte Fläche Glanzlicht gemäß n n 1 Polygon-Annäherung Glanzlichtstelle 1 n 1 n n 2 2 lineare nterpolation der ntensität Abb. 5-11 Annäherungsfehler beim Darstellen von Glanzlichtern 3DRend2-15 Direkte Schattierungsverfahren (Gouraud: fehlende Glanzlichter ) Feinere Unterteilung der Oberfläche verbessert Resultat: Glanzlicht 1 2 Lineare nterpolation Abb. 5-12 Verbesserung des Gouraud-Schattierungsverfahrens durch feinere Polygonunterteilung 3DRend2-16
Direkte Schattierungsverfahren (Phong-Shading ) Phong-Shading [Phong 1975]: Lineare nterpolation der Normalenvektoren zwischen den Polygonecken anstelle von nterpolation der ntensitätswerte (bei Grafikkarten/-software als Pixelshader bekannt). Exakte Berechnung der cos n -Funktion im Phong-Beleuchtungsmodell für jedes Pixel: Glanzlichter werden erhalten, Mach-Band-Effekt wird vermieden. n i n 2 exakte Fläche korrekte Ausprägung des Glanz- lichtverlaufs n 1 Polygon-Annäherung 1 gemäß n i 2 n 1 n n 2 nterpolation der Normalenvektoren 3DRend2-17 Direkte Schattierungsverfahren (3D-Grafikhardware ) 5.1.8 3D-Grafikhardware Hardware-Unterstützung: Z-Puffer-Verfahren für Flat-Shading bzw. Gouraud-Shading Double Buffering Performanz: mehrere 100.000 Polygone pro Sekunde mit korrekter Sichtbarkeit und Beleuchtung Pipeline-Architektur der Grafikhardware: Die Ausführung vieler Operationen erfolgt nur einmal pro Pixel. nkrementelle Berechnung des z-wertes mit Ganzzahlarithmetik, Vergleich der z-werte mit dem Z-Puffer, nterpolation der Farbwerte beim Gouraud-Shading, Mischen der Farbwerte gemäß der - Werte, Abspeicherung der neuen Werte. Quasiparallele Ausführung ermöglicht vergleichbare Performanz der hardware-basierten 3D-Schattierung mit derjenigen beim Füllen von Polygonen in 2D. Bei neueren Grafikkarten gilt dies auch unter Berücksichtigung von Funktionserweiterungen wie Textur- Mapping (auch anisotrop) und Pixelshading (Phong-Shading). 3DRend2-18
Direkte Schattierungsverfahren (3D-Grafikhardware ) Übliche Performanzangaben für Grafik-Hardware: Geschwindigkeitsangaben der pro Pixel auszuführenden Operationen für normierte Polygone (z. B. Dreiecke mit 100 Pixeln). Für größere Polygone sinkt die Performanz mit der Anzahl der Pixel (d. h. etwa umgekehrt proportional zum Flächeninhalt). Neben der Polygonleistung wird deshalb meist die Anzahl der abgearbeiteten Pixel (typischerweise mehrere Millionen pro Sekunde) angegeben. Unterteilung eines großen Polygons in viele kleinere Dreiecke bringt kaum Performanz-Einbußen, jedoch Vorteile bei der Berechnung der Beleuchtung. Phong-Shading: Bis 2005 von OpenGL und Hardware aus Effizienzgründen meist nicht unterstützt. Seit kurzem hardwarebasiertes Phong-Shading verfügbar (Per-Pixel-Shading). 3DRend2-19 Direkte Schattierungsverfahren (3D-Grafikhardware ) Speicheranforderungen: Pro Pixel typischerweise mindestens 48 Bit: R+G+B+A+Z (Abb.5-13). 1.000.000 Pixel Bildschirminhalt benötigen ca. 6 MB Speicher. : 8 Bit (A) Tiefe: 16 Bit (Z) Farbe: 24 Bit (RGB) 1Pixel Abb. 5-13 Bildspeicher mit RGB Z-Werten 3DRend2-20