2012-03-21 67 views
1

我在通过OpenGL在伪2D画布中显示四边形。OpenGL Android:X轴被神秘地翻转

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],它应在的左下角为中心四方。然而,渲染场景时,它看起来像这样:

OpenGL Screenshot

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

回答

3

确定这是一个有点傻,但我找到了答案分钟写这封邮件的问题(它发生的时间后):

“相机”正在考虑四的背面。在gluLookAt中为四边形的所有z坐标分配“0”,为眼点的z坐标分配“+1”固定它。