Opengl 在GLSL中检索FBO数据

Opengl 在GLSL中检索FBO数据,opengl,glsl,fbo,Opengl,Glsl,Fbo,我正在尝试让MRT在OpenGL中工作,以尝试延迟渲染。我的理解是这样的 创建3个渲染缓冲区(例如)。两个RGBA8和一个Depth32 创建一个FBO 将渲染缓冲区附加到FBO。颜色附件0/1用于颜色缓冲区,DepthAttachment用于深度缓冲区 捆绑FBO 绘制几何图形 使用frag着色器中的gl_FragData[]将数据发送到不同的附件 此时,我想使用GLSL在另一个过程中获取数据,a)如何从帧缓冲区颜色附件检索数据,b)如何从深度组件获取数据。您使用什么作为FBO附件?Rende

我正在尝试让MRT在OpenGL中工作,以尝试延迟渲染。我的理解是这样的

  • 创建3个渲染缓冲区(例如)。两个RGBA8和一个Depth32
  • 创建一个FBO
  • 将渲染缓冲区附加到FBO。颜色附件0/1用于颜色缓冲区,DepthAttachment用于深度缓冲区
  • 捆绑FBO
  • 绘制几何图形
  • 使用frag着色器中的
    gl_FragData[]
    将数据发送到不同的附件

  • 此时,我想使用GLSL在另一个过程中获取数据,a)如何从帧缓冲区颜色附件检索数据,b)如何从深度组件获取数据。

    您使用什么作为FBO附件?Renderbuffers?纹理


    您应该使用纹理作为颜色附件(和深度附件),以便在下一步中读取它们。对于renderbuffer,没有办法做到这一点。

    我使用renderbuffers(请参见问题3),因为我从来不会将生成的图像用作几何体上的纹理贴图。我想我最好使用纹理作为附件,并在第二遍将它们映射到与屏幕对齐的四边形上?是的,没错,纹理才是最好的选择。