【问题标题】:OpenGL Android: X axis is mysteriously flippedOpenGL Android:X轴神秘翻转
【发布时间】:2012-03-21 16:29:07
【问题描述】:

我通过 OpenGL 在伪 2D 画布中显示四边形。 为此,我通过以下方式使用正交投影:

gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glLoadIdentity();
gl.glOrthof(-ratio, ratio, -1, 1, 0, 10000);

显示的四边形坐标为:

float[] quadCoords = {-10.0f, -10.0f, 5.0f, 
                       10.0f, -10.0f, 5.0f, 
                       10.0f,  10.0f, 5.0f, 
                      -10.0f,  10.0f, 5.0f};

这个四边形被渲染为 2 个三角形(我省去了代码)。我也在应用纹理,效果很好。 “相机”是在渲染四边形之前定义的:

gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
GLU.gluLookAt(gl, -10.0f, -10.0f, -5, -10.0f, -10.0f, 0f, 0f, 1.0f, 0.0f);

如您所见,视口以 [-10, -10, 0] 为中心,应该以四边形的左下角为中心。但是,在渲染场景时,它看起来像这样:

这似乎是右下角 - 但事实并非如此。我检查了它,结果发现 X 轴被翻转了。我在 gluLookAt 上做错了吗?还是我错过了什么?

【问题讨论】:

    标签: android opengl-es glulookat


    【解决方案1】:

    好吧,这有点傻,但我在写完这个问题几分钟后找到了答案(发生后几个小时):

    “相机”正在查看四边形的背面。为四边形的所有 z 坐标分配“0”,为 gluLookAt 中视点的 z 坐标分配“+1”修复它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多