Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/05/2014, 15:21
latinoalfredo
 
Fecha de Ingreso: agosto-2011
Mensajes: 2
Antigüedad: 13 años, 2 meses
Puntos: 0
Iluminacion OpenGl

Hola, necesito orientacion acerca del funcionamiento de las luces en Opengl.
He conseguido definir sus propiedades, en esto caso cree una luz direccional pero no consigo que apunte hacia donde yo quiero. Esta siempre se queda fija mirando hacia -z.
Con esta funcion puedo mover el foco a donde quiera:
glLightfv(GL_LIGHT0, GL_POSITION, LuzPos);
Pero esta funcion que en principio es para dirigir el foco, ignora lo que le ponga. Hay alguna razon por la que pase esto.
glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, SpotDir);

Las luces las inicializo asi:

GLfloat LuzPos[] = { 0, 0, 0, 1 };
GLfloat SpotDir[] = { 0, 10, 0 };
GLfloat Ambient[] = { 0.2f, 0.2f, 0.2f, 1.0f };
GLfloat Diffuse[] = { 1, 0, 0, 0.0f };
GLfloat SpecRef[] = { 1.0f, 1.0f, 1.0f, 1.0f };
GLfloat Specular[] = { 1.0f, 1, 1, 1.0f };

glLightfv(GL_LIGHT0, GL_DIFFUSE, Diffuse);
glLightfv(GL_LIGHT0, GL_SPECULAR, Specular);
glLightfv(GL_LIGHT0, GL_AMBIENT, Ambient);
glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 100.0f);
glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, 100.0f);
glLightfv(GL_LIGHT0, GL_POSITION, LuzPos);
glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, SpotDir);
glEnable(GL_LIGHT0);
glEnable(GL_LIGHTING);
glMaterialfv(GL_FRONT, GL_SPECULAR, SpecRef);
glMaterialf(GL_FRONT, GL_SHININESS, 100);