为了在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中呈现。
答案 0 :(得分:0)
所以这个问题的答案很有意思......你不能在z方向上使用glTranslatef方法翻译gl矩阵超过1f!我的对象z位置大约是-50f,当调用glTranslatef()时,我将对象翻译为0f和1f之间并且对象不可见!
浪费一天......