我有两个2D纹理。第一个是MSAA纹理,使用
根据OpenGL的ARB_texture_multisample规范,当绘制MSAA纹理时,只有
在这种情况下,这两个纹理都通过它们各自的帧缓冲对象附加到
因此,在当前约束条件下,如果我将持有MSAA的FBO复制到不持有MSAA的FBO,则仍需要使用
GL_TEXTURE_2D_MULTISAMPLE
目标。第二个非MSAA纹理,使用GL_TEXTURE_2D
目标。根据OpenGL的ARB_texture_multisample规范,当绘制MSAA纹理时,只有
GL_NEAREST
是有效的过滤选项。在这种情况下,这两个纹理都通过它们各自的帧缓冲对象附加到
GL_COLOR_ATTACHMENT0
。它们的分辨率也相同(据我所知,这是将MSAA复制到非MSAA时必须的)。因此,在当前约束条件下,如果我将持有MSAA的FBO复制到不持有MSAA的FBO,则仍需要使用
GL_NEAREST
作为过滤选项,还是GL_LINEAR
有效,因为这两个纹理已经被渲染了?
texelFetch(...)
,因此大多数采样器状态是无意义的(例如环绕模式、过滤器、LOD 偏差)已经被暗示。正如你所说,根据规范设置这些状态不是错误。但是,如果必须使用过滤器来描述行为,则点采样 / 最近邻采样是唯一的选择。 - Andon M. Coleman