OpenGL坐标映射到设备坐标

时间:2013-02-10 07:21:00

标签: android opengl-es

我经历了这么多教程和还在OpenGL中实现了一些小应用程序。我对OpenGL坐标系统到android视图坐标系统的映射感到困惑。       当我试图将纹理显示为全屏时,我遇到了问题。通过点击和试验方法,我能够将纹理显示为全屏,但有很多疑点,我无法快速进行。

  1. 在OpenGL中,坐标系统从左下角(作为原点)开始,而在设备左上角作为原点。如何将内容正确映射到设备。

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

  3. 顶点的映射方式与设备坐标完全相同。使用0,100映射到顶点到0,100的设备坐标。

  4. 在尝试将纹理显示为全屏时,我根据某些博客更改了代码并且工作正常。这就是更改。

    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帮助我理解坐标映射。

1 个答案:

答案 0 :(得分:1)

你将glOrtho设置为宽度和高度opengl将拉伸它以适合你正在使用的设备,比如说你的宽度= 320和高度= 480当你做glOrth(0,宽度,高度,0, 1,-1)opengl拉伸以适合您的屏幕,因此坐标可以是您想要的坐标,通过设置glOrth()的宽度和高度