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

时间:2015-10-05 19:37:48

标签: c++ opengl opengl-es

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

我正在使用OpenGL 2.1(或OpenGL ES 2),非固定管道。

2 个答案:

答案 0 :(得分:6)

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

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

另一种选择是设置glDrawBuffer(GL_NONE),但这在GLES 2中不可用。

答案 1 :(得分:4)

只有将colormask设置为全部false才能渲染到深度缓冲区。

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