Gouraud-Shading

Beim Zeichnen von Flächen unterscheidet OpenGL zwei Modi: Flat-Shading on Gouraud-Shading. Beim Flat-Shading besitzt jede Fläche eine konstante Farbe. Beim Gouraud-Shading werden die Farben der Eckpunkte jedes Dreiecks in der Mitte des Dreiecks interpoliert.

Gouraud Shading

Im Detail: Der Bildschirm besteht aus einem Raster von Punkten (Pixel). Das Dreieck wird zuerst von oben nach unten in Zeilen zerlegt. Für jede Zeile werden links und rechts die beiden Randfarben durch Mittelung aus den Eckpunktfarben bestimmt (z.B. H aus den Punkten A und C). Die Farbe eines Punktes zwischen linkem und rechtem Rand ergibt sich dann durch Mittelung der so gewonnenen Randfarben (im Bild durch Mittelung der Farben von B und H).

An- und abschalten lässt sich die Interpolation über das Kommandos glShadeModel(GL_SMOOTH) bzw. glShadeModel(GL_FLAT). Standardmäßig is Gouraud-Shading angeschaltet.

Die Farbe der Eckpunkte wird jeweils mit dem glColor Befehl gesetzt, bevor der Punkt durh einen glVertex Befehl gezeichnet wird. Das Codefragment

glBegin(GL_TRIANGLES);

    glColor3f (0, 0, 1); // RGB-Farbe blau
    glVertex2f(1, 1);    // Punkt A setzen

    glColor3f (0, 0, 0); // RGB-Farbe schwarz
    glVertex2f(0, 0);    // Punkt B setzen

    glColor3f (1, 1, 1); // RGB-Farbe weiß
    glVertex2f(2, -1);   // Punkt C setzen

glEnd();

würde in etwa das Dreieck des obigen Diagramms zeichnen.

zurück