我在将 msaa 深度缓冲区解析为深度纹理时遇到问题。我为我的颜色纹理和深度纹理创建了 glTexImage2d,并将它们绑定到“resolve”(非 msaa)帧缓冲区。然后我创建并绑定另一个帧缓冲区并创建我的多重采样渲染缓冲区(颜色和深度)。我知道要从多重采样渲染缓冲区中获取我的颜色纹理信息,我只是将写入缓冲区作为我的颜色纹理帧缓冲区,将读取缓冲区作为我的 msaa 帧缓冲区。我的问题是如何将多重采样深度缓冲区映射到深度纹理。
问问题
4786 次
1 回答
4
您将按照与颜色缓冲区相同的方式执行此操作,只是您会使用GL_DEPTH_BUFFER_BIT
并确保您使用GL_NEAREST
过滤器模式。如果您想对深度/模板缓冲区进行线性过滤,无论出于何种原因,如果您使用深度纹理(当然这对于 MSAA 纹理仍然无效),您实际上可以在 GLSL 中执行此操作 - 但使用glBlitFramebuffer (...)
.
您不必glReadBuffer (...)
像要选择单个颜色缓冲区那样做任何废话,glBlitFramebuffer (...)
将深度缓冲区从 bound 复制GL_READ_FRAMEBUFFER
到 bound GL_DRAW_FRAMEBUFFER
。
于 2013-09-17T18:40:24.207 回答