指定默认深度缓冲精度

Specify default depth buffer precision

在 Firefox (Windows OS) 中,默认的 WebGL 上下文带有 16 位深度缓冲区,有什么方法可以得到至少 24 位?

没有正式的,没有。

然而,在创建期间使用 stencil: true 使用模板缓冲区创建上下文可能会导致它使用 24+8 格式...

然而,与其依赖可能无法在 future/on 某些设备上工作的技巧,不如先研究这些选项来缓解 depth-testing 问题:

  • 修改您的剪辑平面设置
  • alter your depth value encoding
  • 使用 DEPTH_STENCIL 渲染缓冲区或 depth texture 附件渲染到帧缓冲区
  • 作为最后的手段,做 使用 32 位纹理作为深度缓冲区的你自己的深度测试

其实是Firefox的bug,这里修复了: https://bugzilla.mozilla.org/show_bug.cgi?id=1427668

在 Firefox 59 中现在一切正常,同样,默认为 24​​ 位。