05/07/2011, 05:56
|
| | Fecha de Ingreso: noviembre-2009
Mensajes: 36
Antigüedad: 15 años, 1 mes 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. |