8 Schattierungsmodell

OpenGL schattiert auf eine sehr einfache, jedoch für die meisten Fälle vollkommen ausreichende Weise:

Jedem Eckpunkt wird eine Farbe, Helligkeit, Transparenz und ein Normalvektor zugewiesen. Mit diesen Werten wird jedem Eckpunkt eine endgültige Farbe zugewiesen. Aktiviert man das Gouraud-Shading, wird zwischen dem Eckpunk-ten durchinterpoliert, ansonsten wird der letzte Materialeintrag für die ganze Fläche angenommen.

8.1 Material

Jedem Eckpunkt kann ein unterschiedliches Material zugewiesen werden. Zu den Materialeigenschaften gehören:

Material wird zugewiesen mit:

glMaterial ( GLenum face, GLenum pname, TYPE param )
hat einen der folgenden Werte:

und bestimmt, für welche Seite des Punktes die folgende Zuweisung gelten soll.

hat einen der folgenden Werte:

Die Materialbehandlung wird eingeschaltet mit:

glEnable ( GL_LIGHTING );

Ist die Materialbehandlung ausgeschaltet, werden für die Berechnung der Eckpunktfarben die glColor-Befehle benutzt.

8.2 Licht

Zusätzlich zum Material eines jeden Punktes gibt es noch bis zu acht Lichtquellen. Jede von ihnen besitzt ähnliche Eigen-schaften wie ein Vertex. Neben der Ambient-, Diffuse- und Specular-Color kommen jedoch noch Eigenschaften dazu, wie z.B.: Position, Spot Richtung und Spot Winkel.

glLight ( GLenum light, GLenum pname, TYPE param );

besitzt entweder den Wert GL_LIGHT0, GL_LIGHT1, ... oder GL_LIGHT7.

hat einen der folgenden Werte:

Eingeschaltet wird eine Lichtquelle mit:

glEnable ( GL_LIGHTx );

8.3 Shading-Modell

Schlußendlich muß noch definiert werden, ob die Flächen Flat- oder Gouraud - Schattiert werden sollen. Dies geschieht mit:

glShadeModel ( GLenum mode );
ist entweder :