Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: davidgf en 12 de Noviembre de 2009, 10:13:36 PM

Título: Proyectar vértice OpenGL
Publicado por: davidgf en 12 de Noviembre de 2009, 10:13:36 PM
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
Título: Re: Proyectar vértice OpenGL
Publicado por: tamat en 13 de Noviembre de 2009, 11:30:36 AM
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
Título: Re: Proyectar vértice OpenGL
Publicado por: davidgf en 14 de Noviembre de 2009, 12:21:33 AM
Ostras vaia  jalada! gracias! Al final lo he implementado sin gluproject, multiplicando las matrices modelview y project, trasponiendo y transformando.
Título: Re: Proyectar vértice OpenGL
Publicado por: tamat en 14 de Noviembre de 2009, 12:12:35 PM
mejor acostumbrarse a gestionar las matrices por uno mismo