Problema con iluminación calculo de normales
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<faces_vértices, size (),i++) { if(escalado==0) { faces_normals[i]=calcnormal(vértices[faces_vértices[i]._1].x,vértices[faces_vértices[i]._1].y,vértices[faces_vértices[i]._1].z,vértices[faces_vértices[i]._2].x,vértices[faces_vértices[i]._2].y,vértices[faces_vértices[i]._2].z,vértices[faces_vértices[i]._3].x,vértices[faces_vértices[i]._3].y,vértices[faces_vértices[i]._3].z), } else { faces_normals[i]=calcnormal(vértices[faces_vértices[i]._1].x * escalado,vértices[faces_vértices[i]._1], y * escalado,vértices[faces_vértices[i]._1].z * escalado,vértices[faces_vértices[i]._2].x * escalado,vértices[faces_vértices[i]._2], y * escalado,vértices[faces_vértices[i]._2].z * escalado,vértices[faces_vértices[i]._3].x * escalado,vértices[faces_vértices[i]._3], y * escalado,vértices[faces_vértices[i]._3].z * escalado), } t }. Gracias.
Problema con iluminación calculo de normales
No será que estas utilizando las mismas caras? Y no las de la nueva posición.
Problema con iluminación calculo de normales
Las caras solo se calculan una vez. Es decir, que, por ejemplo, vértices[faces_vértices[i]._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[i]=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?