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

时间:2013-05-13 13:05:57

标签: opengl fbo

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

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

好:

dtizcto7.png

坏:

wy7hg754.png

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

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

编辑1:

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

1 个答案:

答案 0 :(得分:7)

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