Hola de nuevo a todos!
Tengo un problema con proyectar un vertice en una coordenada 2D. La solución es:
GLdouble modelMatrix[16];
GLdouble projMatrix[16];
GLint viewport[4];
GLdouble ox,oy,oz;
glGetDoublev(GL_MATRIX_MODE, modelMatrix);
glGetDoublev(GL_PROJECTION_MATRIX, projMatrix);
glGetIntegerv(GL_VIEWPORT, viewport);
gluProject (vec3d.x,vec3d.y,vec3d.z,modelMatrix,projMatrix,viewport,&ox,&oy,&oz);
donde ox y oy estan entre {-0,5 , 0,5 }. Pero el programa me saca coordenadas mayores o menores de 0.5 aun estando el punto en pantalla o +/- inf.
Porque sucede esto?
Gracias
David
esta linea creo que está mal:
glGetDoublev(GL_MATRIX_MODE, modelMatrix);
debería ser GL_MODELVIEW_MATRIX
GL_MATRIX_MODE solo sirve para decirle qué matriz vas a usar
Ostras vaia jalada! gracias! Al final lo he implementado sin gluproject, multiplicando las matrices modelview y project, trasponiendo y transformando.
mejor acostumbrarse a gestionar las matrices por uno mismo