Search code examples
c++openglprojection

c++ opengl: how can i combine 2 different projection types for 3d graphics and 2d menus?


I would like to use Oblique projection for menus and perspective projection for the 3d-scene. is there a way to combine between this two projections ?

In general I'm asking how can I create menus in opengl for my 3d scene.

Programming using the c++ language.

Thanks!


Solution

  • No problem. Just draw your 3D scene with appropriate modelview and projection matrices loaded. Then load up 2D matrices, turn off depth test, and render your menus. Here's an example of what it might look like.

    glEnable(GL_DEPTH_TEST)
    glMatrixMode(GL_MODELVIEW);
    --code to load my Perspective Modelview Matrix
    glMatrixMode(GL_PROJECTION);
    --code to load my Perspective Projection Matrix
    --code to draw my 3D scene
    glMatrixMode(GL_MODELVIEW)
    glLoadIdentity()
    glMatrixMode(GL_PROJECTION);
    --code to setup my "menu" coords, probably something like
      gluOrtho2D
    glDisable(GL_DEPTH_TEST)
    --code to draw the menus