【问题标题】:Good alternative to reading from depth attachment (OpenGL ES 2.0)从深度附件读取的好选择(OpenGL ES 2.0)
【发布时间】: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 中。

标签: c++ graphics opengl-es


【解决方案1】:

没有自动的方法来做到这一点。随后的渲染通道将不得不通过着色器中的普通纹理()调用加载深度信息。

【讨论】:

    猜你喜欢
    • 2011-02-05
    • 2011-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-27
    • 2016-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多