影响深度,或来自片段着色器内部的模板缓冲区?

问题描述:

我知道可以通过写入gl_FragDepth来控制写入GLSL中深度缓冲区的内容,但可以写入模板缓冲区吗?影响深度,或来自片段着色器内部的模板缓冲区?

此外,我可以从片段着色器中完全取消像素写入,就好像像素未能通过模板或深度测试一样?

感谢

如果您使用的是正确的硬件,你可以写信给模板缓存。所有的Radeon HD硬件都可以使用AMD_stencil_shader_export。有一个ARB_stencil_shader_export,但我无法验证它是否特别广泛。

如果你想停止一个片段写任何东西,你可以使用discard。这就像在概念上抛出异常(但不是行为上)。

+0

丢弃作品,谢谢。刚刚发现gl_FragDepth已从gles 2.0中移除,但= / – bitwise