OpenGL坐标映射到设备坐标
问题描述:
我已经经历了这么多的教程&也实现了一些OpenGL.Still中的小应用程序我对OpenGL坐标系统到android视图坐标系统的映射有困惑。 我在尝试以全屏方式显示纹理时遇到了问题。通过点击&试用方法,我能够将纹理显示为全屏,但有许多疑惑,我无法快速进行。OpenGL坐标映射到设备坐标
在OpenGL中的坐标系中装置开始与左底部(原点),而左顶部作为origin.How东西都正确地映射到设备。
在OpenGL中,我们指定的顶点范围从-1开始到1.如何将这些范围映射到其范围从0到宽度&高度的设备。
顶点是否可以与设备配置完全相同的方式进行映射。类似于0,100的顶点映射到设备坐标为0,100。
虽然试图表现出纹理全屏,我根据一些博客&它worked.Here是改变而改变的代码。
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帮助我理解坐标映射。
答
你将glOrtho设置为宽度和高度opengl将会拉伸以适合你正在使用的设备,比如当你制作glOrth(0,width,height,0)时,你的width = 320和height = 480 ,1,-1)opengl延伸到适合你的屏幕,所以坐标可以是任何你想要他们是通过设置宽度和高度glOrth()
事实上,这是它的工作原理。同样,您默认注意到OpenGL的Y轴向上增加。要将事物映射到设备上的行为方式,您可以使用glOrtho(0,width,height,0,-1,1)。要获得像素中间的坐标,可以使用glTranslatef(0.5f,0.5f,0f); – 2013-02-22 02:00:09