Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/07/2011, 05:56
tawky
 
Fecha de Ingreso: noviembre-2009
Mensajes: 36
Antigüedad: 14 años, 11 meses
Puntos: 0
Problema con iluminacion, calculo de normales.

Hola.

Estoy haciendo un juego con C++ y OpenGL.

Cuando el modelo esta situado en las coordenadas 0,0,0 al mover la bombilla , la iluminacion funciona correctamente.

Pero cuando sitúo el objeto en otras coordenadas sigue iluminándose como si estuviera en el 0,0,0.

¿Que debo hacer para que se ilumine bien con respecto a su nueva posicion?

Así realizo el calculo de normales.

int i;
_planef Plane1;
bool Error=false;
if (Faces_normals.size()!=Faces_vertices.size())
Faces_normals.resize(Faces_vertices.size());//dar tamaño al vector de normales
for (i=0;i<Faces_vertices.size();i++)
{
if(escalado==0)
{
Faces_normals[i]=CalcNormal(Vertices[Faces_vertices[i]._1].x,Vertices[Faces_vertices[i]._1].y,Vertices[Faces_vertices[i]._1].z,Vertices[Faces_vertices[i]._2].x,Vertices[Faces_vertices[i]._2].y,Vertices[Faces_vertices[i]._2].z,Vertices[Faces_vertices[i]._3].x,Vertices[Faces_vertices[i]._3].y,Vertices[Faces_vertices[i]._3].z);
}
else
{
Faces_normals[i]=CalcNormal(Vertices[Faces_vertices[i]._1].x * escalado,Vertices[Faces_vertices[i]._1].y * escalado,Vertices[Faces_vertices[i]._1].z * escalado,Vertices[Faces_vertices[i]._2].x * escalado,Vertices[Faces_vertices[i]._2].y * escalado ,Vertices[Faces_vertices[i]._2].z * escalado,Vertices[Faces_vertices[i]._3].x * escalado,Vertices[Faces_vertices[i]._3].y * escalado,Vertices[Faces_vertices[i]._3].z * escalado);
}

}

Gracias.