Modifying OpenGL axis system

前端 未结 2 1445
你的背包
你的背包 2021-01-01 04:03

I\'m using OpenGL with gluPerspective, what would I need to do to make it use an axis-system which the origin is top left instead of bottom left?

相关标签:
2条回答
  • 2021-01-01 04:39

    I would say direct operating on the projection matrix is a clean way for this operation. But if by any chance you need an alternative:

    You can just use glScalef(1.f, -1.f, 1.f) to flip the axis.

    This is also just an operation on the GL_MODELVIEW or GL_PROJECTION matrix (whatever is currently active).

    0 讨论(0)
  • 2021-01-01 04:50

    You can do this by flipping the y-axis of the projection matrix. So:

    glMatrixMode(GL_PROJECTION);
    glPushMatrix();
    glLoadMatrix( [1  0  0  0; 
                   0 -1  0  0; 
                   0  0  1  0; 
                   0  0  0  1] ); 
                // ^ pseudo-code, replace with actual matrix
    

    That ought to do it.

    You could also use a glMultMatrix call with the same matrix (instead of Push and then Load), but this way is more easily reversed (just call glPopMatrix on the GL_PROJECTION stack later).

    You can also use the same technique to flip any of the other axes; just put minus signs in the appropriate locations.

    0 讨论(0)
提交回复
热议问题