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.