为了实现“深度剥离”,我将我的 OpenGL 场景渲染到一系列帧缓冲区中,每个帧缓冲区都配备了 rgba 颜色纹理和深度纹理。如果我不关心抗锯齿,这很好用。如果我这样做了,那么似乎正确的做法是启用GL_MULTISAMPLING
并使用 aGL_TEXTURE_2D_MULTISAMPLE
而不是GL_TEXTURE_2D
. 但我对需要更换哪些其他电话感到困惑。
特别是,我应该如何调整我的帧缓冲区结构以使用glTexImage2DMultisample
而不是glTexImage2D
?
我是否需要将调用更改为glFramebufferTexture2D
超出使用GL_TEXTURE_2D_MULTISAMPLE
而不是GL_TEXTURE_2D
?
如果我将颜色和深度都渲染到纹理中,是否需要调用glRenderbufferStorageMultisample
?
最后,glBlit*
除了为要渲染的帧缓冲区设置纹理之外,我还需要做些什么吗?
关于这个主题有很多相关问题,但我发现的解决方案似乎都没有指向规范教程或将所有这些放在一起的清晰示例。