Computergrafik

Open GL Lichtquellen

Phong Shading | | OpenGL Materialfarben

Es gibt in OpenGL mindestens 8 hardware-unterstützte Lichtquellen GL_LIGHT0..7.

Position der Lichtquelle am Beispiel eines sog. Head-Light:

GLfloat ldir[4]={0.0,0.0,1.0,0.0};

// light direction is transformed with modelview
// specification before gluLookAt ->
// -> direction is specified in eye coordinates ->
// -> head light
glLightfv(GL_LIGHT0,GL_POSITION,ldir);
gluLookAt(...);
  • Gerichtetes Licht: w-Komponente der Light-Position ist Null
  • Positioniertes Licht: w-Komponente der Light-Position ist Eins

Farbe und Intensität der Lichtquelle:

GLfloat lambient[3]={0.1,0.1,0.1};
GLfloat ldiffuse[3]={0.125,0.125,0.125};
GLfloat lspecular[3]={0.5,0.5,0.5};

glLightfv(GL_LIGHT0,GL_AMBIENT,lambient);
glLightfv(GL_LIGHT0,GL_DIFFUSE,ldiffuse);
glLightfv(GL_LIGHT0,GL_SPECULAR,lspecular);

Beleuchtung durch Lichtquelle #1 anschalten:

glEnable(GL_LIGHT0);

Beleuchtung anschalten:

glEnable(GL_LIGHTING);

Die OpenGL Fixed-Function-Pipeline implementiert lediglich Gouraud Shading.
Für Phong Shading wird ein Fragment Shader benötigt.

Phong Shading | | OpenGL Materialfarben

Options: