我经历了这么多教程和还在OpenGL中实现了一些小应用程序。我对OpenGL坐标系统到android视图坐标系统的映射感到困惑。 当我试图将纹理显示为全屏时,我遇到了问题。通过点击和试验方法,我能够将纹理显示为全屏,但有很多疑点,我无法快速进行。
在OpenGL中,坐标系统从左下角(作为原点)开始,而在设备左上角作为原点。如何将内容正确映射到设备。
在OpenGL中,我们指定顶点范围从-1到1.如何将这些范围映射到设备,其范围从0到宽度&高度。
顶点的映射方式与设备坐标完全相同。使用0,100映射到顶点到0,100的设备坐标。
在尝试将纹理显示为全屏时,我根据某些博客更改了代码并且工作正常。这就是更改。
glOrtho(0, width, height, 0, -1, 1); from glOrtho(0, width, 0, height, -1, 1);
& vertices[] = {
0, 0,
width, 0,
width, height,
0, height
};
from {-1,-1,
1,-1,
-1,1,
1,1}
Plz帮助我理解坐标映射。
答案 0 :(得分:1)
你将glOrtho设置为宽度和高度opengl将拉伸它以适合你正在使用的设备,比如说你的宽度= 320和高度= 480当你做glOrth(0,宽度,高度,0, 1,-1)opengl拉伸以适合您的屏幕,因此坐标可以是您想要的坐标,通过设置glOrth()的宽度和高度