我在处理msaa深度缓冲区解析为深度纹理时遇到了问题。我创建了glTexImage2d用于我的颜色纹理和深度纹理,并将它们绑定到“resolve”(非msaa)帧缓冲区。然后我创建并绑定另一个帧缓冲区,并创建我的多重采样渲染缓冲区(颜色和深度)。我知道如何从多重采样渲染缓冲区获取我的颜色纹理信息,只需使用写入缓冲区作为我的颜色纹理帧缓冲区,读取缓冲区作为我的msaa帧缓冲区即可进行blit操作。我的问题是如何将我的多重采样深度缓冲区blit到我的深度纹理中。
GL_DEPTH_BUFFER_BIT
并确保在过滤模式中使用GL_NEAREST
。如果您想在深度/模板缓冲区上进行线性过滤,出于任何原因,您实际上可以在GLSL中使用深度纹理来实现(当然,这仍然对MSAA纹理无效)- 但是使用glBlitFramebuffer (...)
这样做是无效的。
您不必像选择单个颜色缓冲区时那样执行任何glReadBuffer (...)
荒谬操作,glBlitFramebuffer (...)
将从绑定的GL_READ_FRAMEBUFFER
复制深度缓冲区到绑定的GL_DRAW_FRAMEBUFFER
。