指定默认深度缓冲精度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了指定默认深度缓冲精度相关的知识,希望对你有一定的参考价值。

在Firefox(Windows操作系统)中,默认的WebGL上下文带有一个16位深度缓冲区,有没有办法获得至少24位?

答案

没有正式的,没有。

但是,在创建过程中使用stencil: true创建模板缓冲区的上下文可能会导致它使用24 + 8格式...

但是,您可能希望首先考虑这些选项以缓解深度测试问题,而不是依赖可能在将来/某些设备上无法工作的技巧:

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

实际上,它是Firefox中的一个错误,它在这里修复:https://bugzilla.mozilla.org/show_bug.cgi?id=1427668

在Firefox 59中,现在一切正常,默认情况下为24位。

以上是关于指定默认深度缓冲精度的主要内容,如果未能解决你的问题,请参考以下文章

帧缓冲

◮OpenGL-深度测试

✠OpenGL-2-图像管线

OpenGL ES之“深度测试”与“模板测试”的使用流程

帧缓冲纹理出现白色(片段着色器不影响它)

模板测试