我知道可以通过写入gl_FragDepth来控制写入GLSL深度缓冲区的内容,但是可以写入模板缓冲区吗?
另外,我可以从片段着色器中完全取消像素写入,就像像素模板或深度测试失败一样吗?
由于
答案 0 :(得分:4)
如果使用正确的硬件,则可以写入模板缓冲区。所有Radeon HD硬件都可以使用AMD_stencil_shader_export。有一个ARB_stencil_shader_export,但我无法验证它是否特别普遍。
如果要阻止片段写入任何内容,可以使用discard
。这有点像在概念上抛出异常(但不是行为)。