glReadPixels()不会返回消除锯齿的图片

时间:2017-08-07 15:48:51

标签: c++ qt opengl antialiasing msaa

当我将场景渲染到屏幕时,场景使用_MultiSampling Anti-Aliasing 8x;就可以了。

但是我想通过glReadPixels()读取像素缓冲区,我有一个带有别名行的别名图像。 它不使用8x MSAA

代码:

glReadPixels(0,0, w, h, GL_BGRA_EXT, GL_UNSIGNED_BYTE, (void*)pixels);

如何使用MSAA转换(过滤器)访问像素缓冲区?

glReadPixels没有特殊参数。

旁注:我想使用Opengl 1

重要提示:我使用的是Qt 5.9的QOpenGLWidget类

1 个答案:

答案 0 :(得分:1)

我认为你是通过FBO渲染到屏幕外的渲染缓冲区或纹理。解决方案是创建一个使用MSAA pixelformat的渲染缓冲区。 Antialiasing不是后期处理过滤器!(至少不是MSAA实现的形式)。