影响深度,或来自片段着色器内部的模板缓冲区?
问题描述:
我知道可以通过写入gl_FragDepth来控制写入GLSL中深度缓冲区的内容,但可以写入模板缓冲区吗?影响深度,或来自片段着色器内部的模板缓冲区?
此外,我可以从片段着色器中完全取消像素写入,就好像像素未能通过模板或深度测试一样?
感谢
答
如果您使用的是正确的硬件,你可以写信给模板缓存。所有的Radeon HD硬件都可以使用AMD_stencil_shader_export。有一个ARB_stencil_shader_export,但我无法验证它是否特别广泛。
如果你想停止一个片段写任何东西,你可以使用discard
。这就像在概念上抛出异常(但不是行为上)。
丢弃作品,谢谢。刚刚发现gl_FragDepth已从gles 2.0中移除,但= / – bitwise