Hola !
Pues estoy haciendo un programilla en openGL y tengo una duda mi programa basicamente tiene 3 puntos
funcion dibujar:
Lo que hace es colocarr los glVertex cada uno en su sitio al igual que las glNormalfuncion mover
dependiendo de la flecha pulsada (arriba , abajo ...) gira el objeto dibujado con glRotatefmain
Tiene para inicializar la ventana , perspectiva y las luces y un bucle que dibuja la escena:
Init()
Perspectiva()
luces()
Bucle{
pintar();
mover();
}
Mi problema es que consigo dibujar el objeto bien pero sin sentido aparente al rotar la imagen la iluminacion solo actua en una cara de la figura , es decir , que si yo roto la figura la iluminacion no se queda quieta sino que por lo visto gira junto a la escena actuando siempre sobre el mismo punto y no sobre las de mas caras del objeto .Para explicarlos mejor imaginaros un cubo en 3d en el que la luz esta actuando solo en una de las caras del cubo. No se si me explico xD lo que hago es habilitar las luces antes del bucle que dibuja la escena de esta forma
float ambient[] = {0.4, 0.4, 0.4, 0.0};
float diffuse[] = {0.4, 0.4, 0.4, 0.0};
float specular[] = {1.0, 1.0, 1.0, 0.0};
float position[] = {-5.0, 5.0, 5.0, 0.0};
glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
glLightfv(GL_LIGHT0, GL_SPECULAR, specular);
glLightfv(GL_LIGHT0, GL_POSITION, position);
glEnable(GL_LIGHT0);
glEnable(GL_LIGHTING);
tengo que meter las luces entre un pushmatrix y un popmatrix? de ser asi de que forma? , alguna idea?
Gracias por responder