为什么有时我们使用特定的位来进行模板测试?
Why sometimes we use specific bits to do stencil test?
我不清楚为什么有时会选择模板缓冲区的某些特定位来进行模板测试。我找不到像只测试一个模板缓冲区的 1、3、5 位这样的示例。
原因不是特别有趣。模板缓冲区通常包含每个样本 8 位,您可以在应用程序中随意使用这 8 位。所以这些位的含义取决于你。
它们通常用于进行体积相交测试,例如用于模板阴影的阴影体积(一种大约在 2005 年流行的技术),您可以在其中使用模板缓冲区作为计数器。另一个例子是延迟照明,您可以在模板缓冲区中使用单个位来跟踪哪些像素受到特定光线的影响。
因此,如果您将 "this pixel is affected by light #3" 存储在位 1 中,那么您在渲染灯光 #3 时会测试位 1。这完全取决于应用程序开发人员。
我不清楚为什么有时会选择模板缓冲区的某些特定位来进行模板测试。我找不到像只测试一个模板缓冲区的 1、3、5 位这样的示例。
原因不是特别有趣。模板缓冲区通常包含每个样本 8 位,您可以在应用程序中随意使用这 8 位。所以这些位的含义取决于你。
它们通常用于进行体积相交测试,例如用于模板阴影的阴影体积(一种大约在 2005 年流行的技术),您可以在其中使用模板缓冲区作为计数器。另一个例子是延迟照明,您可以在模板缓冲区中使用单个位来跟踪哪些像素受到特定光线的影响。
因此,如果您将 "this pixel is affected by light #3" 存储在位 1 中,那么您在渲染灯光 #3 时会测试位 1。这完全取决于应用程序开发人员。