我一直在使用几个自定义FBO。 FBO-A附有MSAA纹理,其中几何体被渲染。然后通过将FBO-A的MSAA纹理附件blit到FBO-B的常规tex 2d附件来解决它。这个过程意味着在多个FBO之间进行切换,并在几个中说明相反,在不同的FBO之间切换附件之间的性能更明智。我试图设置MSAA纹理和附加到同一个FBO的常规纹理。但我发现我无法通过blitting做出决心。如果我从MSAA到常规纹理副本进行纹理复制,MSAA是否会像blitting一样被解决?
更新
对于那些有兴趣知道在一个FBO中使用多个FBO与多个附件是否值得(性能明智)的人。 我刚做了一个测试(NVidia Quadro 4000),结果是完全相同的FPS(+ = 15-20帧)。但可能是硬件和OGL实现依赖。
答案 0 :(得分:5)
我尝试将MSAA纹理和附加到同一FBO的常规纹理设置。但我发现我无法通过blitting做出决定。
当然不是。为了执行blit,源和目标帧缓冲区必须完整。其中一个rules of completeness状态表示所有附加图像必须具有相同数量的样本。
如果我从MSAA到常规纹理副本进行纹理复制,那么MSAA是否会像blitting一样被解析?
“纹理复制”是什么意思?
如果您正在谈论使用新的4.3/ARB_copy_image glCopyImageSubData
,那么不。同样,源图像和目标图像的样本计数必须匹配。
如果您正在使用copying from framebuffers to textures等讨论glCopyTexSubImage2D
,那么是的,这将执行多重采样解析。
然而,你真的应该做这个blit。