写入深度缓冲区而不在OpenGL中进行深度测试(非着色器)

kam*_*iro 8 opengl

在OpenGL中,是否有可能绘制一系列不检查深度的多边形(因此它们将始终绘制在其前面绘制的其他多边形的前面,关于它们的z位置)

但同时,他们仍然写入深度缓冲区?

我想这可以使用着色器,但是现在我无法访问它.

Bah*_*bar 17

严格来说(来自手册页):

如果禁用深度测试,则不会更新深度缓冲区.

但是......你可以启用深度测试,而没有任何片段未通过测试:

glDepthFunc(GL_ALWAYS);
glEnable(GL_DEPTH_TEST);
Run Code Online (Sandbox Code Playgroud)

当然,你通过这样做得到最后的Z,而不是最接近视图.