从片段着色器内部影响深度或模板缓冲区?

3

我知道在GLSL中可以通过写入gl_FragDepth来控制写入深度缓冲区的内容,但能否写入模板缓冲区呢?

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

谢谢

1个回答

4
如果你使用正确的硬件,你可以写入模板缓冲区。所有Radeon HD硬件都可以使用AMD_stencil_shader_export。也有一个ARB_stencil_shader_export,但我无法验证它是否特别普遍。
如果你想停止片段写入任何内容,可以使用discard。这在概念上类似于抛出异常(但行为上不是)。

刚刚发现 gl_FragDepth 在 gles 2.0 中被移除了 =/ - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接