只有在当前像素的alpha大于0.5的情况下,我才想写入OpenGL深度缓冲区如何做到这一点?如何在GLSL中写入/防止写入OpenGL深度缓冲区
如果像素有alpha < 0.5,我想呈现颜色但不会将其深度写入深度缓冲区。命令discard
不是我要找的,因为它丢弃了颜色和深度信息;我只想丢弃深度信息。
有gl_FragDepth
变量可以设置,但值哪些? 而对于这个案例alpha < 0.5,如何离开gl_FragDepth
不变?
我是否必须为此使用FBO,还是应该在没有? 项目我的工作,是一个GLES 2.0 Android项目
我不认为你可以一次性完成这项工作,至少不是直接和不高效。您当然可以将gl_FragDepth设置为一个会导致深度测试失败的值(例如zfar),但是这也会放弃该片段的颜色。通过两次使用不同的阿尔法测试,这应该工作......但在ES上,你可能无法承受像这样的另一次传球。 – Damon 2011-04-26 16:49:37