2013-10-24 70 views
1

我有一個問題,我的opengl在HTC設備上無法正確呈現。HTC設備上的深度測試繪圖問題

我已經在其上正確呈現的幾個其他設備上測試過它。 是普通設備上的示例: Here是普通設備上的示例。和here是用HTC慾望的示例和慾望S.

當我在

GLES20.glEnable(GLES20.GL_DEPTH_TEST)加入的問題;

並且當我註釋掉它時又會再次出現,但是我不能僅僅因爲我的一半牆壁變得不可見而離開它。

它有可能與this?有關嗎有什麼我可以做的嗎?我可以提供更多的代碼。

回答

1

很可能你忘了明確指定一些東西。設備之間的默認值有所不同,在一個GPU上運行的代碼將在另一個GPU上失敗。請確保你已經設置的所有這些:

GLES20.glEnable(GLES20.GL_DEPTH_TEST); // enable depth test 
GLES20.glDepthMask(true); // write to z-buffer 
GLES20.glDepthFunc(GLES20.GL_LEQUAL); // specify the way depth test works 

當繪製幾何圖形,經常清理顏色和深度緩衝:

GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.GL_DEPTH_BUFFER_BIT); // clear both color and z-buffer 

最後,確保你正確初始化你的OpenGL上下文並且您使用的EGL配置具有深度緩衝區(EGL_DEPTH_SIZE不是0)。你可以在這裏找到Desire S的所有可用EGL配置列表:http://gfxbench.com/device.jsp?benchmark=gfx27&D=HTC+Desire+S&testgroup=egl

+0

非常感謝,我假設你只需要啓用深度測試,並且在所有設備上都是一樣的。真的很愚蠢。 – Adude11