webgl - WebGL 1.0 的 24 位深度缓冲区

标签 webgl opengl-es-2.0

我发现 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

The mailing list archive .

关于webgl - WebGL 1.0 的 24 位深度缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47123611/

相关文章:

java - OpenGL ES2 Alpha 测试问题

android - 实现 GLSurfaceView.Renderer 问题

javascript - Three.js 更新相机矩阵世界

javascript - 支持 WebGL 模板缓冲区

android - Android 上使用 WebGL 的顶点着色器 Artifact

javascript - 同时显示视频元素的多个帧

java - 从 OpenGL ES 2.0 中读取纹理

google-chrome - 如何强制 chrome 为 webgl 使用 mesa 软件驱动程序

opengl-es - 使用具有多个颜色纹理附件的 FrameBufferObject

java - 平滑运动 Opengl ES 2.0