我正在阅读这篇关于 MSAA 延迟着色的教程,来自 28byteslater.com。
它说在显式多重采样中我们可以访问特定的样本。
例如,我们不能对绑定到的常规纹理做同样的事情GL_TEXTURE_2D_MULTISAMPLE
吗?
这是我之前用来访问单个样本的着色器代码(不使用显式多重采样):
uniform sampler2DMS Diffuse;
ivec2 Texcoord = ivec2(textureSize(Diffuse) * In.Texcoord);
vec4 colorFirstSample = texelFetch(Diffuse, Texcoord, 0);
vec4 colorSecondSample = texelFetch(Diffuse, Texcoord, 1);
vec4 colorThirdSample = texelFetch(Diffuse, Texcoord, 2);
我在显式多重采样中看到的唯一不同之处是它们texelFetchRenderbuffer()
在着色器中使用并且纹理绑定到GL_TEXTURE_RENDERBUFFER_NV
. 另外,如果我没记错的话,它不可能在着色器中使用 RenderBuffer,现在我们可以了吗?