如何在GLSL中编写/防止写入OpenGL深度缓冲区

我只想在当前像素的alpha> 0.5的情况下写入OpenGL深度缓冲区。

如果像素的alpha <0.5,我想渲染颜色,但不会将其深度写入深度缓冲区。 discard的命令不是我正在寻找的,因为它丢弃了颜色和深度信息; 我只想丢弃深度信息。

gl_FragDepthvariables可以设置,但是哪个值? 而对于alpha <0.5的情况,如何让gl_FragDepth不变?

我是否必须为此使用FBO,还是应该在没有? 我正在开发的项目是一个GLES 2.0 Android项目

Solutions Collecting From Web of "如何在GLSL中编写/防止写入OpenGL深度缓冲区"

我已经通过使用解决了我的问题

 glDepthMask(false) 

该命令禁止写入深度缓冲区,但仍然执行深度testing。 我简单地渲染了所有其他对象之后的透明对象,并得到了我正在寻找的结果。