C++ OpenGL:如何将两种不同的投影类型结合起来用于3D图形和2D菜单?

4
我希望在菜单中使用斜投影,而在3D场景中使用透视投影。有没有一种方法来结合这两种投影?
总的来说,我想知道如何在OpenGL中为我的3D场景创建菜单。
使用C++语言进行编程。
谢谢!
2个回答

7

没问题。只需使用适当的模型视图矩阵和投影矩阵绘制您的3D场景。然后加载2D矩阵,关闭深度测试,并渲染您的菜单。这是可能看起来的一个示例。

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

3
  • 绘制你的3D场景。
  • 推送投影矩阵。
  • (也许清除深度缓冲区)。
  • 设置2D投影。
  • 绘制你的2D菜单。
  • 弹出投影矩阵。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接