我使用glVertex2f()在数组中绘制一些点,我需要颠倒它。我在glViewport()中绘制它,所以我可以调整它并移动它。但我不知道如何翻转它。
我必须使用gluOrth2d()吗?我不完全理解gluOrth2d()和glViewport()之间的区别以及何时使用它。
答案 0 :(得分:2)
您将使用以下方式垂直翻转场景(颠倒)
glScalef(1, -1, 1);
或使用以下方式水平翻转:
glScalef(-1, 1, 1);
答案 1 :(得分:1)
glViewport()设置视口。也就是说它设置了整个几何体将被绘制的窗口的哪个部分。请注意,它接受整数(!!)而不是浮点数,因为我们需要精确到渲染将发生的屏幕部分。
gluOrtho ,例如 gluPerspective , glFrustrum e.t.c.用于设置投影矩阵。
请注意,即使您在程序中可能没有使用gluOrtho2D(),也应该使用它,因为您总是需要自己设置透视投影。
编辑 :(更正为符合评论中的指示)
为了翻转整个场景,假设它是2D,你可以这样做
glScalef(1,-1,1);
将当前模型视图矩阵与缩放矩阵相乘,从而有效地翻转场景。
由于您似乎需要帮助理解openGL矩阵的使用,我想提供这两个链接,我希望可以提供帮助: