Flat Shading

Aus DGL Wiki
Version vom 23. März 2009, 23:57 Uhr von Skeptiker (Diskussion | Beiträge) (Flat Shading)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

In OpenGL uterscheidet man 2 verschiedene Methoden um die Farben von Flächen zu berechnen:

Flat Shading

Flat Shading ist die schnellere aber im Ergebnis auch unspektakulärere Methode. Als Farbe für die gesamte Fläche, wird die Farbe des letzten Vertex der Fläche benutzt. Alle anderen Farbinformationen der anderen Vertices werden ingnoriert. Dadurch entsteht eine gleichmäßig gefärbte Fläche.

glShadeModel(GL_FLAT);
glBegin(GL_QUADS);
  glColor3f(1, 0, 0); glVertex3f(0, 0, 0);
  glColor3f(0, 1, 0); glVertex3f(1, 0, 0);
  glColor3f(0, 0, 1); glVertex3f(1, 1, 0);
  glColor3f(1, 1, 0); glVertex3f(0, 1, 0);
glEnd;
GlShadeModel FLAT.jpg

Smooth Shading

Smooth Shading erzeugt einen Farbverlauf zwischen den Farbinformationen der Eckpunkte über die gesamte Fläche. Jeder Farbwert geht in die Berechnung ein. Zwischen Vertices wird die Farbe durch lineare Interpolation bestimmt. Dieses Vorgehen erfordert allerdings mehr Zeit als bei der Flat Shading Methode nötig wäre.

glShadeModel(GL_SMOOTH);
glBegin(GL_QUADS);
  glColor3f(1, 0, 0); glVertex3f(0, 0, 0);
  glColor3f(0, 1, 0); glVertex3f(1, 0, 0);
  glColor3f(0, 0, 1); glVertex3f(1, 1, 0);
  glColor3f(1, 1, 0); glVertex3f(0, 1, 0);
glEnd;
GlShadeModel SMOOTH.jpg

Siehe Auch

glShadeModel, Feste_Funktionspipeline#Flat_Shading