2013-07-05 28 views
0

爲了在Android的OpenGL的3D世界和2D世界中使用相同的對象,我無法在兩個GLU透視圖中呈現相同的對象。Android OpenGL中的3D到2D對象由於剔除而不呈現

例如,當我執行以下命令:

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

所以這個問題的答案是相當有趣的......你不能在z方向使用glTranslatef方法超過1f來翻譯gl矩陣!我的對象z位置在-50f左右,當調用glTranslatef()發生時,我將對象不在0f和1f之間,並且對象不可見!

多麼浪費一天......