c++ - 在只接触深度缓冲区的 openGL 中进行绘制调用

标签 c++ opengl opengl-es

我不希望将深度缓冲区渲染到纹理,或查询它的阴影或类似的东西 - 我希望本质上制作一个渲染 channel ,它只是在我之前用一些数据预填充深度缓冲区其他将利用其内容的绘图调用。但是,我不希望这个“填充深度缓冲区”传递写入颜色缓冲区。

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

最佳答案

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

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

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

关于c++ - 在只接触深度缓冲区的 openGL 中进行绘制调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32956543/

相关文章:

java - Android 用相机的 SurfaceView 覆盖 GLSurfaceView

C++::Template 函数 - 从 object.function 获取对象的地址

c++ - 分配/声明 __64int (long long int) 数组时出现问题

C++堆栈迷宫求解程序

改变茶壶的颜色有时不起作用

java - 在 Android GLES 1.0 中渲染期间,对象会晃动。

c++ - Irrlicht 正在错误路径中查找文件

opengl - 片段着色器 - 绘制曲线

java - 使用 OpenGL 进行高斯模糊(不是纹理)

ios - glclear() 在 ios8 opengl 中修改 glscissor() 边界之外的图像