0

我已经阅读了很多教程并且还在 OpenGL 中实现了一些小应用程序。我对 OpenGL 坐标系统到 android 视图坐标系统的映射感到困惑。我在尝试将纹理显示为全屏时遇到了这个问题。不知何故,通过 hit&trial 方法,我能够将纹理显示为全屏,但有很多疑问,我无法快速进行。

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

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

  3. 顶点能否以与设备坐标完全相同的方式进行映射。就像具有 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}

请帮助我理解坐标映射。

4

1 回答 1

1

您将 glOrtho 设置为宽度和高度 opengl 将拉伸它以适合您正在使用的设备,例如当您制作 glOrth(0,width,height,0,1,- 1)opengl拉伸它以适应您的屏幕,因此坐标可以通过设置 glOrth() 的宽度和高度来设置您想要的任何值

于 2013-02-17T00:22:03.393 回答