OpenGL:如果正常绘制,对象是平滑的,但在渲染到FBO时对象是渐变的

Tim*_*imV 8 opengl fbo

与默认帧缓冲区相比,使用FBO时,我遇到了不同视觉效果的问题:

我将我的OpenGL场景渲染成帧缓冲对象,因为我使用它来进行颜色拾取.问题是,如果我将场景直接渲染到默认的帧缓冲区,屏幕上的输出非常平滑,这意味着我的对象的边缘看起来有点像是否消除锯齿.当我将场景渲染到FBO中并随后使用输出来构建跨越整个视口的四边形时,对象具有非常硬的边缘,您可以轻松地看到属于对象的每个单色像素.

好:

dtizcto7.png

坏:

wy7hg754.png

目前我不知道这可能是什么原因.我没有使用某种抗锯齿.

系统:
Fedora 18 x64
Intel HD Graphics 4000和Nvidia GT 740M(相同结果)

EDIT1:

正如Damon和Steven Lu所说,默认情况下系统可能会启用某种抗锯齿功能.到目前为止我无法弄清楚如何禁用此功能.
问题是,我只是好奇为什么这个设置只对默认的帧缓冲区产生影响,而不是FBO处理的影响.为了获得FBO的抗锯齿边缘,我可能必须实现自己的AA方法.

Mic*_* IV 7

将场景绘制到自定义FBO后,外部定义的MSAA级别将不再适用.您必须将FBO配置为具有多样本纹理或渲染缓冲区附件,以设置沿途的样本级别数.是一个参考.