正如标题所示,我使用Qt进行OpenGL绘图,并且使用QOpenGLWidget,我可以使用QSurfaceFormat的setSamples()函数为主屏幕缓冲区打开多重采样。这很好,看起来很不错。但是,我也在后台绘制了一个自定义帧缓冲区(使用glGenFramebuffers,glBindFramebuffer()等),我不想要抗锯齿(因为它使用颜色编码绘图)为了选择目的),但它似乎以某种方式继承了主QOpenGLWidget的多次采样。关于如何禁用它的任何想法,在主窗口中使用多重采样但不在我自己的自定义屏幕外帧缓冲区中?
答案 0 :(得分:1)
使用glEnable/Disable(GL_MULTISAMPLE)
启用或禁用多重采样渲染。此状态不是帧缓冲区状态的一部分;它是常规的上下文状态。因此,即使切换帧缓冲区,该状态也不会受到影响。
此外,如果附加的图像没有多个样本,则多重采样启用/禁用开关并不意味着什么。如果您要为非多重采样渲染创建图像,则没有理由使用多个样本创建它们。因此,创建单样本图像。
答案 1 :(得分:0)
好吧,找不到一种方法来禁用它或者在我的OpenGL代码中避免它,但是如果我将默认格式设置为0个样本并且QOpenGLWidget的格式为2/4/8 /无论什么,那么帧缓冲对象在创建时不会使用消除锯齿。