vistas tecnico proyecciones perspectiva paso partir militar mano isometricos isometrico isometricas isometrica hallar hacer ejemplos dibujos dibujo dibujar como c++ opengl isometric

c++ - tecnico - ¿Cómo renderizar con perspectiva isométrica?



proyecciones isometricas dibujo tecnico (1)

Posible duplicado:
verdadera proyección isométrica con OpenGL

Quiero renderizar usando la misma representación isométrica que usa Blender3d, ¿cómo puedo hacer esto? ¿Es posible con solo una llamada a glMultMatrix ()? Intenté buscar en Google pero no encontré ninguna matriz funcional que pudiera dar como resultado ese tipo de modo de renderizado. Probé esta http://en.wikipedia.org/wiki/Isometric_projection pero me pareció realmente extraña.

Esta es la matriz que uso ahora que se renderiza con una perspectiva normal:

GLdouble f = cotan(fovy/2.0); GLdouble aspect = (GLdouble)width/(GLdouble)height; IsoMatrix.x[0] = f/aspect; IsoMatrix.y[0] = 0; IsoMatrix.z[0] = 0; IsoMatrix.w[0] = 0; IsoMatrix.x[1] = 0; IsoMatrix.y[1] = f; IsoMatrix.z[1] = 0; IsoMatrix.w[1] = 0; IsoMatrix.x[2] = 0; IsoMatrix.y[2] = 0; IsoMatrix.z[2] = (zfar+znear)/(znear-zfar); IsoMatrix.w[2] = (2.0*zfar*znear)/(znear-zfar); IsoMatrix.x[3] = 0; IsoMatrix.y[3] = 0; IsoMatrix.z[3] = -1; IsoMatrix.w[3] = 0; glMultMatrixd((GLdouble *)&IsoMatrix);

¿Cómo lo cambio para que resulte en: http://rvzenteno.files.wordpress.com/2008/10/rvz_018.jpg ?


Es más fácil usar glOrtho y luego rotar los ejes:

glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(-10.0f, 10.0f, -10.0f, 10.0f, -10.0f, 10.0f); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glRotatef(35.264f, 1.0f, 0.0f, 0.0f); glRotatef(-45.0f, 0.0f, 1.0f, 0.0f);