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(...);
// 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);
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 →