OpenGL坐标匹配屏幕坐标?

时间:2011-05-23 00:27:12

标签: android opengl-es coordinates

Android opengl-es查看问题。所以在openGL中,摄像头和视图的默认位置是0,0。如何设置视图和摄像机,使其与计算机屏幕坐标基本相同,顶部为0,0。我调用了gl.glOrthof(-screenWidth / 2,ScreenWidth / 2,-ScreenHeight / 2,ScreenHeight / 2)。但我认为这是错误的。我还需要设置相机来查看整个区域。我不确定如何使用gl.glFrustumf来完成这项任务。

1 个答案:

答案 0 :(得分:11)

要将顶点坐标用作屏幕坐标,只需在投影矩阵上使用glOrtho(0, width, height, 0, -1, 1)并保留模型视图矩阵标识(这是默认值)。请注意,我在底部和顶部翻转,因为GL(0,0)位于左下方,您希望它位于顶部(但请记住,这也会翻转每个对象,因此也会翻转三角形排序)。您还忘记设置近距离和远距离平面(不会显示具有此区间之外的z的所有内容)。但是,当你现在用z = 0绘制所有对象时(这是默认情况下,当仅绘制2d顶点时),一切都应该没问题。

glFrustum只是glOrtho的替代品。在glOrtho构造正交(并行)视图的地方,glFrustum构建透视图。所以你不需要glFrustum