我有时在渲染帧时通过glDepthMask(GL_FALSE)
禁用深度缓冲区写入。在某些GPU(例如摩托罗拉Droid的PowerVR)上,它的工作效果非常好,但是在带有Adreno GPU的HTC EVO上,我最终将帧缓冲区当作是完全垃圾(我看到了在某处渲染的网格的痕迹,但是整个屏幕大部分都被丢弃了)。
如果我一直强制glDepthMask为true,则一切正常。
我需要在部分Alpha渲染期间关闭glDepthMask。关闭深度写入会导致帧缓冲区被破坏的原因是什么?
最佳答案
问题是调用glDepthMask
时glClearDepth
必须为true。显然,这仅适用于Adreno GPU,不适用于PowerVR GPU。