【问题标题】:Blitting several textures at once with glBlitFramebuffer使用 glBlitFramebuffer 一次对多个纹理进行 Blitting
【发布时间】:2023-03-27 17:00:01
【问题描述】:

我有一个小型 OpenGL 应用程序,我正在寻找一次对多个纹理缓冲区进行 blitting 的最佳方法。

假设我有两个帧缓冲区(fbo1fbo2),每个缓冲区都包含两个纹理缓冲区。我有一个带有四个纹理缓冲区的目标 fbo (fbo3)。我想将所有纹理从fbo1fbo2 复制到fbo3

目前我正在为每个纹理分别做,例如,

glBindFramebuffer(GL_READ_FRAMEBUFFER, fbo1)
glReadBuffer(GL_COLOR_ATTACHMENT0)
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo3)
glDrawBuffer(GL_COLOR_ATTACHMENT0)

glBlitFramebuffer(0, 0, width, height, 0, 0, ds_width, ds_height, GL_COLOR_BUFFER_BIT, GL_LINEAR)

glBindFramebuffer(GL_READ_FRAMEBUFFER, 0)
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0)

通常是怎么做的?这甚至可行吗?

【问题讨论】:

    标签: opengl 3d pyopengl fbo


    【解决方案1】:

    这不是“通常”完成的,因为人们通常不会经常复制一堆帧缓冲区图像。事实上,如果你是,这强烈表明你可能做错了什么。

    这样做的唯一方法是您在此处所做的方式(尽管帧缓冲区的不必要重新绑定可以消失):每次更改读取/绘制缓冲区并进行 blit。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-05
      • 2015-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多