我发现 WebGL 中没有等效的 GL_DEPTH_COMPONENT24_OES
渲染缓冲区存储。但是我可以使用 WEBGL_depth_texture
扩展来制作 24_8 或 32 位深度纹理。这些与 DEPTH_COMPONENT24
/DEPTH_COMPONENT32
渲染缓冲区等效吗?它的工作原理与屏幕缓冲区相同吗?
这就是他们没有为 WebGL 制作 24/32 位深度渲染缓冲区的原因吗?
最佳答案
规范中没有提到的是,DEPTH_STENCIL
只是一个抽象。 WebGL 实现,尤其是较旧的实现,可以通过在后台捆绑一个深度缓冲区和一个模板缓冲区来实现 DEPTH_STENCIL
。因此,DEPTH_STENCIL
渲染缓冲区可以是任何值:16/8(如果不支持 24)、24/8(带扩展名)等。一致性测试表明深度缓冲区至少为16位。
他们提出了这个抽象概念,甚至没有对其进行简单的剖析。只是这一行突然冒出来:
WebGL adds
DEPTH_STENCIL
renderbuffer
关于webgl - WebGL 1.0 的 24 位深度缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47123611/