Vorbemerkung - Schattierungsverfahren für polygonale Netze
Das erste qualitativ gute Schattierungsverfahren in der Computergrafik wurde von H. Gouraud im Jahre 1971 entwickelt. Dieses Verfahren wurde 1975 von Phong Bui-Tuong verbessert.
Bei der Schattierung eines Pixels sind zwei Überlegungen anzustellen:
- Auf welche Art und Weise wird das Licht, das auf einen beliebigen Punkt auf der Oberfläche reflektierte wird, berechnet?
- Wie kann die Lichtintensität berechnet werden?
Durch ein Beleuchtungsmodell wie z.B. das Lambert- bzw. das Phong-Beleuchtungsmodell kann die Farbe eines beliebigen Punktes auf der Oberfläche eines Polygonalen Objektes berechnet werden. Im folgenden Kapitel werden die Verfahren Flat-, Gouraud- und Phong-Shading genauer vorgestellt. Flat- und Gouraud-Shading sowie auch die Phong-Beleuchtung werden praktisch in jeder heutigen Grafikhardware umgesetzt und sind somit für interaktive 3d-Anwendungen einsetzbar. Die Phong-Schattierung ist um einiges rechenintensiver und wird generell eher im Softwarerendering umgesetzt.
(a) Drahtgitter - Wireframe (a) Flat-Shading (c) Wireframe Gouraud-Shading (d) Phong-Shading |
Die heute am weitesten verbreitete Methode zur Schattierung von Polygonen ist das Gouraud-Shading (auch Intensity Interpolation Shading, Color Interpolation Shading oder auch Vertex Lighting genannt). Die Gouraud- wie auch das folgende Phong-Shading versuchen mit unterschiedlichen Methoden, die Kanten zwischen den einzelnen Flächen in der Darstellung der Objekte zu glätten. Grundlage beider Methoden sind die Ecknormalen und die Anwendung einer Interpolation.
Im Gegensatz zum Flat-Shading, bei dem ein einziger Intensitätswert für das gesamte Polygonfläche herangezogen wird, werden beim Gouraud-Shading die Farbwerte an jedem Eckpunkt (Vertex) berechnet. Anschließend interpoliert das Verfahren diese Werte, um so das Polygon zu schattieren.
Die Grundidee des Verfahrens: Die besonderen Oberflächennormalen in einem Punkt/Vertex (A,B) werden als Ecknormalen (NA, NB) bezeichnet. Bei der Gouraud-Schattierung wird die Lichtintensität unter Verwendung des lokalen Reflexionsmodells an den Eckpunkten (A, B) des Polygons berechnet. . Anschließend wird zwischen den Intensitäten linear interpoliert, um Farbwerte an den projizierten Pixeln (IP) zu finden. Ein großer Nachteil dieser Methode stellt die Berechnung der Glanzlichter dar. Wenn Gouraud- schattierte Objekte Glanzlichter (Specular Highlights) enthalten, werden diese entweder in der Interpolation verschluckt oder als Stern-Artefakt gezeigt. Folglich werden die Reflektionen nicht rund, sondern sternförmig dargestellt. |
Die Phong-Schattierung darf nicht mit dem Phong-Beleuchtungsmodell gleichgestellt werden. Es können beide Modelle gemeinsam eingesetzt werden, das eine ist jedoch ein Beleuchtungsmodell, das andere eine Schattierungsmethode. Da die Phong-Schattierung sehr rechenaufwendig ist, wird für Echtzeitanwendungen meist das Phong-Beleuchtungsmodell in Verbindung mit dem Gouraud-Schattierungsmethode verwendet. Diese Kombination wird von den meisten Grafikkarten berechnet. Das Phong-Schattierungsmodell erzielt ähnlich wie die Gouraud-Methode, bei dem die Farben und Intensitäten linear interpoliert werden, eine Glättung der Kanten der Polygonflächen bei der Darstellung. Phong-Shading ist jedoch ein Per-Pixel-Verfahren. Das heißt, die Beleuchtung für jeden Pixel wird einzeln berechnet. Dadurch können Reflektionen und Glanzlichtern optimal dargestellt werden auf Kosten von Renderzeit.
Die Grundidee des Verfahrens: |
Schattierungsoptionen von Renderern
Bei der Schattierungsoption von Renderern handelt es sich um 3d-Echtzeitdarstellungsmöglichkeiten wie z. B. in einem 3d-Fenster von 3dsmax. Die meisten Renderer besitzen eine Hierarchie von Schattierungsoptionen, mit denen die Qualität auf Kosten der Berechnungszeit eingestellt werden kann. Je nach Arbeitsphase (Modellierung, Animation, Rendern) kann zwischen den einzelnen Schattierungsoptionen gewechselt werden.
Drahtmodell – Wireframe Führt kein Rendering oder Schattierung durch. Das Drahtgittermodell wird eher bei der Modellierung und Animation gewählt. Aufgrund der Schnelligkeit des Renderprozesses können Animationen von komplexen Objekten in Echtzeit betrachtet und analysiert werden. | |
Drahtmodell - Wireframe mit Backface-Culling | |
Flach schattierte Polygone – Flat-Shading Bei dieser einfachen und schnellen Schattierung wird ausschließlich die Flächennormale herangezogen. Eine Interpolation wird nicht berechnet. | |
Gouraud-Schattierung Dabei handelt es sich um die grundlegende Schatteirungsoption. Zwischen den Ecknormalen wird eine Interpolation durchgeführt. Diese Option kann keine angemessenen Glanzlichter berechnen und wird deshalb ausschließlich für diffuse Reflexion eingesetzt. | |
Phong-Schattierung Diese Methode kann Glanzlichter berechen, ist aber zwischen vier- und fünfmal langsamer als die Gouraud-Methode und folglich eher ungeeignet für interaktive 3d-Anwendungen. Kombination von Phong und Gouraud-Schattierung Besteht ein Objekt aus diffusen und spekularen Objekten, wird die Gouraud-Schattierung für die diffusen Objekte und die Phong-Schattierung ausschließlich für die spekulare Reflexion verwendet. | |
Wireframe on Shaded Bei dieser Schattierungsoption wird das Drahtgittermodell gleichzeitig mit der schattierten Darstellung gezeigt. Diese Darstellungsart eignet sich besonders bei der Modellierung. | |
X-Ray Eine weitere Schattierungsoption zeigt das schattierte Objekt transparent. |