Android中的3D到2D对象由于剔除而无法渲染

时间:2013-07-05 02:37:23

标签: android opengl-es render glu

为了在Android的OpenGL的3D世界和2D世界中使用相同的对象,我无法在两个GLU视角中渲染相同的对象。

例如,当我执行以下命令时:

GLU.gluPerspective(gl, 45.0f,(float)GlobalConfiguration.getWidth()/(float)GlobalConfiguration.getHeight(),0.1f,1000.0f);

我必须确保我的对象像这样呈现......

gl.glFrontFace(GL10.GL_CCW);
gl.glEnable(GL10.GL_CULL_FACE);
gl.glCullFace(GL10.GL_BACK);

但是当我将观点改为:

GLU.gluOrtho2D(gl,0,GlobalConfiguration.getWidth(),GlobalConfiguration.getHeight(),0);

除非我禁用剔除或重新定义索引缓冲区中顶点的顺序,否则该对象不会呈现。

现在我需要坚持3D世界的工作原因是因为这就是我的建模软件保存它的对象的方式。 (搅拌机)

有谁知道为什么会这样?我想仍然使用剔除(启用它),但我希望一个对象可以在3D和2D中呈现。

1 个答案:

答案 0 :(得分:0)

所以这个问题的答案很有意思......你不能在z方向上使用glTranslatef方法翻译gl矩阵超过1f!我的对象z位置大约是-50f,当调用glTranslatef()时,我将对象翻译为0f和1f之间并且对象不可见!

浪费一天......

相关问题