【问题标题】:glReadPixels() doesn't return an Anti-aliased pictureglReadPixels() 不返回抗锯齿图片
【发布时间】:2017-08-07 15:48:50
【问题描述】:

当我将场景渲染到屏幕上时,场景使用_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 类

【问题讨论】:

  • glReadPixels() 读取您在屏幕上看到的内容。如果它读取非 AA 图像,那么您的 AA 不工作。
  • glBindFramebuffer(GL_FRAMEBUFFER, 0); 从屏幕上阅读。

标签: c++ qt opengl antialiasing msaa


【解决方案1】:

我认为您正在通过 FBO 渲染到屏幕外渲染缓冲区或纹理。解决方案是创建一个使用 MSAA 像素格式的渲染缓冲区。 抗锯齿不是后处理过滤器!(至少不是 MSAA 实现它的形式)。

【讨论】:

    猜你喜欢
    • 2014-02-18
    • 2011-05-16
    • 1970-01-01
    • 1970-01-01
    • 2016-06-28
    • 2011-07-05
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多