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

时间:2011-04-26 16:28:36

标签: android opengl-es glsl opengl-es-2.0

我只想在当前像素的alpha> 1时写入OpenGL深度缓冲区。 0.5 怎么做?

如果像素具有α< 0.5,我想渲染颜色,但不要将深度写入深度缓冲区。命令discard不是我想要的,因为它丢弃了颜色和深度信息;我只想丢弃深度信息。

可以设置gl_FragDepth变量,但值是多少? 并且对于α< 0.5,如何保持gl_FragDepth不变?

我是否必须使用FBO,或者它是否也可以不使用? 我正在开发的项目是GLES 2.0 Android项目

1 个答案:

答案 0 :(得分:18)

我使用

为我解决了这个问题
glDepthMask(false)

此命令禁用写入深度缓冲区但仍执行深度测试。 我只是在所有其他对象之后渲染我的透明对象,并得到了我正在寻找的结果。