在openGL中进行绘图调用,仅触及深度缓冲区

Phi*_*ldo 2 c++ opengl opengl-es

我不打算将深度缓冲区渲染到纹理,或者查询它以获得阴影或类似的东西 - 我希望基本上创建一个渲染过程,它只是在我的其他绘制调用之前用一些数据预先填充深度缓冲区将利用其内容.但是,我不希望这个"填充深度缓冲区"传递写入颜色缓冲区.

我正在使用OpenGL 2.1(或OpenGL ES 2),带有非固定管道的东西.

Rob*_*ock 6

您只能在将颜色掩码设置为全 false 的情况下渲染到深度缓冲区。

https://www.opengl.org/sdk/docs/man3/xhtml/glColorMask.xml


der*_*ass 6

在某些情况下,仅深度渲染过程并不罕见.

您可以通过屏蔽对颜色缓冲区的所有写入来实现GL中的操作: glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE).(如果你使用其他缓冲区,比如模板,那么它们也有单独的掩码.)

glDrawBuffer(GL_NONE)然而,另一种选择是设置GLES 2中不可用的选项.