我有时在渲染帧时通过glDepthMask(GL_FALSE)禁用深度缓冲区写入。在某些GPU(例如摩托罗拉Droid的PowerVR)上,它的工作效果非常好,但是在带有Adreno GPU的HTC EVO上,我最终将帧缓冲区当作是完全垃圾(我看到了在某处渲染的网格的痕迹,但是整个屏幕大部分都被丢弃了)。

如果我一直强制glDepthMask为true,则一切正常。

我需要在部分Alpha渲染期间关闭glDepthMask。关闭深度写入会导致帧缓冲区被破坏的原因是什么?

最佳答案

问题是调用glDepthMaskglClearDepth必须为true。显然,这仅适用于Adreno GPU,不适用于PowerVR GPU。

10-08 08:46