OpenGL坐标映射到设备坐标

问题描述:

我已经经历了这么多的教程&也实现了一些OpenGL.Still中的小应用程序我对OpenGL坐标系统到android视图坐标系统的映射有困惑。 我在尝试以全屏方式显示纹理时遇到了问题。通过点击&试用方法,我能够将纹理显示为全屏,但有许多疑惑,我无法快速进行。OpenGL坐标映射到设备坐标

  1. 在OpenGL中的坐标系中装置开始与左底部(原点),而左顶部作为origin.How东西都正确地映射到设备。

  2. 在OpenGL中,我们指定的顶点范围从-1开始到1.如何将这些范围映射到其范围从0到宽度&高度的设备。

  3. 顶点是否可以与设备配置完全相同的方式进行映射。类似于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()

+0

事实上,这是它的工作原理。同样,您默认注意到OpenGL的Y轴向上增加。要将事物映射到设备上的行为方式,您可以使用glOrtho(0,width,height,0,-1,1)。要获得像素中间的坐标,可以使用glTranslatef(0.5f,0.5f,0f); – 2013-02-22 02:00:09