我目前通过FBT + RTT与MRT进行渲染,我正在调查通过多重采样(而不是超级采样)实现抗锯齿的可能性,但我对规格感到有些困惑(我指的是opengl spec 4.2 - 所以多重采样纹理在FBO得到了支持)以及我读过的内容......特别是:
1)
如果我做对了,我有两个选择:a)通过多重采样渲染缓冲器进行多重采样,或者b)使用多重采样纹理进行多重采样(并继续使用RTT,因为我现在正在做),现在:< / p>
两种方法都能产生相同的输出吗?
2)
我正在使用RTT因为我需要4个颜色附件来进行多通道渲染。在第一个场景渲染到纹理后,该纹理随后被送到不同的片段着色器,这些着色器通过普通的sampler2D访问其数据。
我应该使用renderbuffers而不是纹理,片段着色器是否有办法访问渲染缓冲区的数据?
3)
我已经在规范中读到附加了多重采样渲染缓冲区的FBO不需要深度/模板,因为该信息保存在多重采样渲染缓冲区中
是否意味着附加多重采样渲染缓冲区的每个颜色附件都有自己的深度/模板?
在FBO中将多重采样纹理作为RT怎么样?我不认为他们存储任何深度/模板信息..我是对的吗?如果我使用FBO +多重采样纹理实现多重采样,我还需要DEPTH_STENCIL_ATTACHMENT吗?如果是这样,深度多重采样怎么样?
4)
我只需要1个纹理/渲染缓冲区进行抗锯齿处理,而另一个必须保持其锯齿状边缘。我已经在规格中读到了使用FBO和多重采样,每个可渲染的渲染必须具有相同数量的样本(尽管可能会有所不同)大小)。
有没有办法让2个RT多重采样中只有1个?下面是teximage2DMultisample(fixedsampledlocation)中最后一个参数的说法:
If fixedsamplelocations is TRUE, the image will use identical
sample locations and the same number of samples for all texels
in the image, and the sample locations will not depend on the
internalformat or size of the image.
是否意味着样本位置固定的多重采样纹理将保留多重采样格式,但实际上表现为常规(非多重采样)纹理? (即:每个样本位置都具有相同的值)?