OpenGL ES 2.0是否可以同时绘制深度和“颜色”缓冲区(没有MRT)?

时间:2014-06-30 12:51:50

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

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

或者我需要两次MRT /渲染?

1 个答案:

答案 0 :(得分:1)

这是OpenGL在渲染过程中更新颜色和深度缓冲区的正常操作模式,只要它们都存在且已启用。

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

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