据我所知,通过在创建帧缓冲区时指定多采样纹理/渲染缓冲区,我可以在OpenGL 3.3中为延迟着色提供自动MSAA(以高昂的内存成本)。这种多重采样是否也对着色器有任何影响,无论是几何体过程还是着色过程,或者是否都是"在后台"处理的?
不可以,在这种情况下不能使用自动MSAA。当它第一次被引入OpenGL时,它被称为显式多采样是有原因的。
您必须从多样本纹理中提取每个样本,并在着色器中自行进行MSAA解析。多采样颜色纹理是DX10的硬件功能,多采样深度纹理是DX10.1的功能,但OpenGL使其非常透明。由于多样本纹理直到DX10.1之后才引入GL,因此在大多数情况下,您都可以在GL中获得这两种纹理(多样本颜色+深度)。
我这里有一个老答案,可能有助于进一步澄清问题。