Colocación de las luces
Publicado por Michi (1 intervención) el 05/06/2006 18:29:47
Estoy intentando colocar una luz puntual (spot light) en una escena pero, aunque modifico su posición y dirección, la luz no se mueve del origen de coordenadas. ¿Alguien sabe qué es lo que falla?
El código es el siguiente:
// INICIALIZACIÓN DE LA ILUMINACION
void IniciaLuces(void)
{
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
Lampara1 ();
glEnable(GL_NORMALIZE);
glEnable(GL_LIGHTING);
}
void Lampara1 (void)
{
GLfloat ambiente [] = { 0.2, 0.2, 0.0, 0.5 };
GLfloat difuso [] = { 0.55, 0.55, 0.4, 1.0 };
GLfloat especular [] = { 1.0, 1.0, 0.0, 1.0 };
GLfloat posicion [] = { 68.5, 68.5, 68.5, 0.0 };
GLfloat direccion [] = { 68.5, 0.0, 68.5};
glLightfv (GL_LIGHT1, GL_AMBIENT, ambiente);
glLightfv (GL_LIGHT1, GL_DIFFUSE, difuso);
glLightfv (GL_LIGHT1, GL_SPECULAR, especular);
glLightfv (GL_LIGHT1, GL_POSITION, posicion);
glLightfv (GL_LIGHT1, GL_SPOT_DIRECTION, direccion);
glLightf (GL_LIGHT1, GL_SPOT_EXPONENT, 1.0);
glLightf (GL_LIGHT1, GL_SPOT_CUTOFF, 45.0);
glLightf (GL_LIGHT1, GL_CONSTANT_ATTENUATION, 0.05);
glEnable(GL_LIGHT1);
}
El código es el siguiente:
// INICIALIZACIÓN DE LA ILUMINACION
void IniciaLuces(void)
{
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
Lampara1 ();
glEnable(GL_NORMALIZE);
glEnable(GL_LIGHTING);
}
void Lampara1 (void)
{
GLfloat ambiente [] = { 0.2, 0.2, 0.0, 0.5 };
GLfloat difuso [] = { 0.55, 0.55, 0.4, 1.0 };
GLfloat especular [] = { 1.0, 1.0, 0.0, 1.0 };
GLfloat posicion [] = { 68.5, 68.5, 68.5, 0.0 };
GLfloat direccion [] = { 68.5, 0.0, 68.5};
glLightfv (GL_LIGHT1, GL_AMBIENT, ambiente);
glLightfv (GL_LIGHT1, GL_DIFFUSE, difuso);
glLightfv (GL_LIGHT1, GL_SPECULAR, especular);
glLightfv (GL_LIGHT1, GL_POSITION, posicion);
glLightfv (GL_LIGHT1, GL_SPOT_DIRECTION, direccion);
glLightf (GL_LIGHT1, GL_SPOT_EXPONENT, 1.0);
glLightf (GL_LIGHT1, GL_SPOT_CUTOFF, 45.0);
glLightf (GL_LIGHT1, GL_CONSTANT_ATTENUATION, 0.05);
glEnable(GL_LIGHT1);
}
Valora esta pregunta
0