【发布时间】:2015-03-13 20:58:56
【问题描述】:
我有一个运行 OpenGL ES 2.0 的引擎。我创建了一个帧缓冲区对象,它有两个颜色附件和一个深度附件。当我对此缓冲区执行渲染时,深度附件用于在对颜色附件进行后续写入时进行深度测试。我想使用深度附件中存在的信息并将其存储在颜色附件中。有没有一种方法可以将数据直接存储在着色器中的第二种颜色附件中,或者至少有一种廉价的方法可以将数据从深度附件复制到本机代码上的其他颜色附件中?
【问题讨论】:
-
您是否考虑过简单地将
gl_FragCoord.z写入其他颜色附件?gl_FragData [1] = gl_FragCoord.z?当然,除非您的颜色附件是GL_R32(我认为 ES 2.0 不支持),否则您可能必须将其打包成 4 个通道以将深度存储在 OpenGL ES 中。