【问题标题】:OpenGL ES 2.0 is it possible to draw to depth and "color" buffer simultaneously (without MRT)?OpenGL ES 2.0 是否可以同时绘制深度和“颜色”缓冲区(没有 MRT)?
【发布时间】:2014-06-30 12:51:50
【问题描述】:

简单的 OpenGL ES 2.0 问题。如果我需要深度和颜色缓冲区,我是否必须渲染几何图形两次?或者我可以在渲染颜色帧时绑定/附加深度缓冲区?

或者我需要 MRT/render 两次?

【问题讨论】:

    标签: opengl-es opengl-es-2.0 depth-buffer


    【解决方案1】:

    在渲染期间更新颜色和深度缓冲区是 OpenGL 的正常操作模式,只要它们都存在并启用。

    如果您要渲染到 FBO,并且想要使用深度缓冲区,则需要分别调用 glFramebufferTexture2D()glFramebufferRenderbuffer() 将颜色纹理或颜色渲染缓冲区附加到 GL_COLOR_ATTACHMENT0。然后使用glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, ...) 分配一个深度渲染缓冲区,并通过调用glFramebufferRenderbuffer() 将其附加到GL_DEPTH_ATTACHMENT

    之后,您可以渲染一次,您的颜色和深度缓冲区都将更新。

    【讨论】:

      猜你喜欢
      • 2015-10-22
      • 2011-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多