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.
Jedem Eckpunkt kann ein unterschiedliches Material zugewiesen werden. Zu den Materialeigenschaften gehören:
Material wird zugewiesen mit:
glMaterial ( GLenum face, GLenum pname, TYPE param )
und bestimmt, für welche Seite des Punktes die folgende Zuweisung gelten soll.
Die Materialbehandlung wird eingeschaltet mit:
glEnable ( GL_LIGHTING );
Ist die Materialbehandlung ausgeschaltet, werden für die Berechnung der Eckpunktfarben die glColor-Befehle benutzt.
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 );
Eingeschaltet wird eine Lichtquelle mit:
glEnable ( GL_LIGHTx );
Schlußendlich muß noch definiert werden, ob die Flächen Flat- oder Gouraud - Schattiert werden sollen. Dies geschieht mit:
glShadeModel ( GLenum mode );