我和一个朋友一直在争论模板缓冲区。简而言之,在OpenGL 3.2+中,我没有找到任何情况下模板缓冲区能够比可编程管线工具提供更多的优势。在现代OpenGL中,是否有任何使用模板缓冲区的用途?【编辑】感谢大家对这个主题的所有输入。
现在可以从片段着色器中对样本模板索引纹理进行采样,因此比以往任何时候都更实用。无论如何,不能争辩模板缓冲区不是可编程管线的一部分。
深度缓冲区用于简单的通过/拒绝片段的处理,正如评论中建议的那样,模板缓冲区也可以这样做。然而,模板缓冲区还可以在多次通过中积累有关测试结果的信息。存在各种逻辑和计数应用程序,例如测量场景的深度复杂性、构造实心几何等。
只是为了提供另一个用例,阴影体(又称“模板阴影”)仍然非常相关:https://en.wikipedia.org/wiki/Shadow_volume
它们对于室内场景非常有用,其中阴影应该是像素完美的,并且您不太可能有α测试的树叶搞乱了挤出的阴影体。
虽然阴影贴图更常见,但我认为一旦脑残的Createive / 3DLabs专利在zfail方法上过期,模板阴影将会卷土重来。