Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android OpenGL坐标匹配屏幕坐标?_Android_Opengl Es_Coordinates - Fatal编程技术网

Android OpenGL坐标匹配屏幕坐标?

Android OpenGL坐标匹配屏幕坐标?,android,opengl-es,coordinates,Android,Opengl Es,Coordinates,Android opengl es视图问题。因此,在openGL中,相机和视图的默认位置为0,0。如何设置视图和摄影机,使其与顶部为0,0的计算机屏幕坐标基本相同。我已经调用了gl.glOrthof(-screenWidth/2,screenWidth/2,-ScreenHeight/2,ScreenHeight/2)。但我认为这是错误的。我还需要设置相机以查看整个区域。我不知道如何使用gl.GLFRUSTOMF来完成此任务。要使用顶点坐标作为屏幕坐标,只需在投影矩阵上使用glOrtho(0,宽

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

要使用顶点坐标作为屏幕坐标,只需在投影矩阵上使用glOrtho(0,宽度,高度,0,-1,1),并保留modelview矩阵标识(这是默认设置)。请注意,我翻转了底部和顶部,如GL(0,0)位于左下角,您希望它位于顶部(但请记住,这也会翻转每个对象,因此三角形顺序)。您还忘记设置近平面和远平面(z超出此间隔的所有平面都不会显示)。但是当您现在使用z=0绘制所有对象时(这是默认值,仅绘制二维顶点时),一切都应该正常


glFrustum
只是
glOrtho
的替代品。当
glOrtho
construct切割正交(平行)视图时,
glFrustum
构造透视视图。所以你不需要glurtho(0,宽度,0,高度,-1,1)?@treehau5如果你阅读了整个答案,尤其是
glurtho
调用之后的句子:“注意,我翻转了底部和顶部,就像GL(0,0)在左下角,你希望它在顶部一样。”右。现在主要的问题是,你为什么要这样做?@treehau5好吧,我怎么知道OP为什么需要左上角的原点。但考虑到许多2D绘图和窗口系统都是以这种方式工作的,因此也有这样的用例。