在 GLSL 中检索 FBO 数据
Posted
技术标签:
【中文标题】在 GLSL 中检索 FBO 数据【英文标题】:Retrieving FBO data in GLSL 【发布时间】:2010-06-06 16:26:55 【问题描述】:我正在尝试让 MRT 在 OpenGL 中工作以尝试延迟渲染。这是我理解的情况。
-
创建 3 个渲染缓冲区(例如)。两个 RGBA8 和一个 Depth32。
创建一个 FBO。
将渲染缓冲区附加到 FBO。 ColorAttachment0/1 用于颜色缓冲区,DepthAttachment 用于深度缓冲区。
绑定 FBO。
绘制几何图形。
在片段着色器中使用
gl_FragData[]
将数据发送到不同的附件。
此时我想使用 GLSL 在另一遍中获取数据,如何 a) 从帧缓冲区颜色附件中检索数据,b) 从深度组件中获取数据。
【问题讨论】:
【参考方案1】:您使用什么作为 FBO 附件?渲染缓冲区?纹理?
您应该使用纹理作为颜色附件(和深度附件),这样您就可以在下一轮中阅读它们。没有办法对渲染缓冲区做同样的事情。
【讨论】:
我使用的是渲染缓冲区(参见问题中的#3),因为我永远不会使用生成的图像作为几何体上的纹理贴图。我想我最好使用纹理作为附件,并在第二遍中将它们映射到屏幕对齐的四边形上? 是的,确切地说,纹理是要走的路。以上是关于在 GLSL 中检索 FBO 数据的主要内容,如果未能解决你的问题,请参考以下文章
AMD 6310 GLSL / FBO 副本损坏前几个最低位(但仅有时)