我有時會在渲染幀期間禁用通過glDepthMask(GL_FALSE)
進行深度緩衝區寫入。這對一些GPU(比如摩托羅拉Droid的PowerVR)來說非常合適,但是對於採用Adreno GPU的HTC EVO,我最終得到的幀緩衝區是完整的垃圾(我看到了我渲染的網格的痕跡,但是整個屏幕大部分都是垃圾)。glDepthMask(GL_FALSE)在某些GPU上渲染幀緩衝區
如果我強制glDepthMask在整個時間都是真的,一切正常。
我需要glDepthMask在alpha渲染的部分過程中關閉。什麼會導致framebuffer通過轉向深度註銷而被破壞?
那麼你的問題是什麼? – 2011-03-01 23:46:26
Ehm ...當我禁用glDepthMask時,爲什麼framebuffer會被丟棄? – EboMike 2011-03-01 23:46:59
剛剛發生在我們身上的每個Adreno GPU上,我們都可以掌握(Nexus One,HTC Incredible 2和XPeria Play)。我們的解決方案是在每幀開始時執行glClear(GL_DEPTH_BUFFER_BIT)。 有趣的是我們甚至沒有深度緩衝區! Android非常可愛... – hasvn 2012-07-23 15:42:30