Problema con iluminación calculo de normales

tawky - 05/07/2011 13:54
Hola. Estoy haciendo un juego con C++ y OpenGL. Cuando el modelo está situado en las coordenadas 0,0,0 al mover la bombilla, la iluminación funciona correctamente.

Pero cuando sitúo el objeto en otras coordenadas sigue iluminándose como si estuviera en el 0,0,0.
¿Qué debo hacer para que se ilumine bien con respecto a su nueva posición?
Así realizo el cálculo de normales.

Int i.

Planef plane1.

Bol error=false, tif (faces_normals, size ().=faces_vértices, size ()) faces_normals, resize (faces_vértices, size ()),//dar tamaño al Vector de normales for (i=0;i=calcnormal(vértices[faces_vértices._1].x,vértices[faces_vértices._1].y,vértices[faces_vértices._1].z,vértices[faces_vértices._2].x,vértices[faces_vértices._2].y,vértices[faces_vértices._2].z,vértices[faces_vértices._3].x,vértices[faces_vértices._3].y,vértices[faces_vértices._3].z), } else { faces_normals=calcnormal(vértices[faces_vértices._1].x * escalado,vértices[faces_vértices._1], y * escalado,vértices[faces_vértices._1].z * escalado,vértices[faces_vértices._2].x * escalado,vértices[faces_vértices._2], y * escalado,vértices[faces_vértices._2].z * escalado,vértices[faces_vértices._3].x * escalado,vértices[faces_vértices._3], y * escalado,vértices[faces_vértices._3].z * escalado), } t }. Gracias.
JD.Pavon - 05/07/2011 19:07
No será que estas utilizando las mismas caras? Y no las de la nueva posición.
tawky - 05/07/2011 20:36
Las caras solo se calculan una vez. Es decir, que, por ejemplo, vértices[faces_vértices._1].x ese punto siempre estará en el mismo punto.

Y ya con un translate pues voy moviendo el objeto.

He probado poniendo faces_normals
=calcnormal(vértices[faces_vértices[i]._1].x + desplazamiento, pero sigue = que, si no le hubiera sumado nada.
¿Cómo hago entonces para calcular las normales del objeto movido?