包含此页的版本:
不含此页的版本:
配置与模具缓冲区 保存每像素值 8 位的内存存储。在 Unity 中,可以使用模具缓冲区来标记像素,然后仅呈现为通过模具作的像素。更多信息
请参阅术语表在 GPU 上。
| 功能名称 | 普遍渲染管线(Render Pipeline) 获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管道中进行选择,或编写自己的渲染管道。更多信息 请参阅术语表(URP) |
高清渲染管线 (HDRP) | 定制 SRP | 内置渲染管线 |
|---|---|---|---|---|
| 模版 | 是的 | 是的 | 是的 | 是的 |
| 签名 | 语法示例 | 功能 |
|---|---|---|
Stencil{Ref <ref>ReadMask <readMask>WriteMask <writeMask>Comp <comparisonOperation>Pass <passOperation>Fail <failOperation>ZFail <zFailOperation>CompBack <comparisonOperationBack>PassBack <passOperationBack>FailBack <failOperationBack>ZFailBack <zFailOperationBack>CompFront <comparisonOperationFront>PassFront <passOperationFront>FailFront <failOperationFront>ZFailFront <zFailOperationFront>}请注意,所有参数都是可选的。 |
Stencil{Ref 2Comp equalPass keepZFail decrWrap}
|
根据给定的参数配置模具缓冲区。 |
| 参数 | 价值 | 功能 |
|---|---|---|
| 裁判 | 整数。范围 0 到 255。默认值为 0。 | 参考值。 GPU 使用 comparisonOperation 中定义的作将模具缓冲区的当前内容与此值进行比较。 此值使用 readMask 或 writeMask 进行屏蔽,具体取决于是否正在发生读取或写入作。 如果 Pass、Fail 或 ZFail 的值为 Replace,GPU 还可以将此值写入模板缓冲区。 |
| 读取掩码 | 整数。范围 0 到 255。默认值为 255。 | GPU 在执行模具测试时将此值用作掩码。 有关模板测试方程, 请参阅上文。 |
| 写掩码 | 整数。范围 0 到 255。默认值为 255。 | GPU 在写入模具缓冲区时使用此值作为掩码。 请注意,与其他掩码一样,它指定作中包含哪些位。例如,值 0 表示写入作中不包含任何位,而不是模具缓冲区接收值 0。 |
| 比较作 | 比较作。有关有效值,请参阅比较作值。默认值为“始终”。 | GPU 为所有像素的模具测试执行的作。 这定义了所有像素的作,无论朝向如何。如果除了 comparisonOperationBack 和 comparisonOperationFront 之外还定义了此值,则此值将覆盖它们。 |
| 通过作 | 模具作。有关有效值,请参阅模具作值。默认值为 Keep。 | 当像素同时暂停模具测试和深度测试时,GPU 对模具缓冲区执行的作。 这定义了所有像素的作,无论朝向如何。如果除了 passOperationBack 和 passOperationFront 之外还定义了此值,则此值将覆盖它们。 |
| 失败作 | 模具作。有关有效值,请参阅模具作值。默认值为 Keep。 | 当像素未通过模具测试时,GPU 对模具缓冲区执行的作。 这定义了所有像素的作,无论朝向如何。如果除了 failOperationBack 和 failOperationFront 之外还定义了此值,则此值将覆盖它们。 |
| zFail作 | 模具作。有关有效值,请参阅模具作值。默认值为 Keep。 | 当像素通过模具测试但未通过深度测试时,GPU 对模具缓冲区执行的作。 这定义了所有像素的作,无论朝向如何。如果除了 zFailOperationBack 和 zFailOperationFront 之外还定义了此值,那么此值将覆盖它们。 |
| 比较作返回 | 比较作。有关有效值,请参阅比较作值。默认值为“始终”。 | GPU 为模具测试执行的作。 这仅定义了背面像素的作。如果定义了 comparisonOperation,则该值将覆盖此值。 |
| passOperation返回 | 模具作。有关有效值,请参阅模具作值。默认值为 Keep。 | 当像素同时暂停模具测试和深度测试时,GPU 对模具缓冲区执行的作。 这仅定义了背面像素的作。如果定义了 passOperation,则该值将覆盖此值。 |
| failOperationBack | 模具作。有关有效值,请参阅模具作值。默认值为 Keep。 | 当像素未通过模具测试时,GPU 对模具缓冲区执行的作。 这仅定义了背面像素的作。如果定义了failOperation,则该值将覆盖此值。 |
| zFailOperationBack | 模具作。有关有效值,请参阅模具作值。默认值为 Keep。 | 当像素通过模具测试但未通过深度测试时,GPU 对模具缓冲区执行的作。 这仅定义了背面像素的作。如果定义了 zFailOperation,那么该值将覆盖此值。 |
| 比较作前线 | 比较作。有关有效值,请参阅比较作值。默认值为“始终”。 | GPU 为模具测试执行的作。 这仅定义了对正面像素的作。如果定义了 comparisonOperation,则该值将覆盖此值。 |
| 通过作前线 | 模具作。有关有效值,请参阅模具作值。默认值为 Keep。 | 当像素同时暂停模具测试和深度测试时,GPU 对模具缓冲区执行的作。 这仅定义了对正面像素的作。如果定义了 passOperation,则该值将覆盖此值。 |
| 失败作前线 | 模具作。有关有效值,请参阅模具作值。默认值为 Keep。 | 当像素未通过模具测试时,GPU 对模具缓冲区执行的作。 这仅定义了对正面像素的作。如果定义了failOperation,则该值将覆盖此值。 |
| zFailOperationFront | 模具作。有关有效值,请参阅模具作值。默认值为 Keep。 | 当像素通过模具测试但未通过深度测试时,GPU 对模具缓冲区执行的作。 这仅定义了对正面像素的作。如果定义了 zFailOperation,那么该值将覆盖此值。 |
在 C# 中,这些值由 Rendering.CompareFunction 枚举表示。
| 价值 | Rendering.CompareFunction 枚举中对应的整数值 | 功能 |
|---|---|---|
Never |
1 | 从不渲染像素计算机图像中的最小单位。像素大小取决于您的屏幕分辨率。像素光照是在每个屏幕像素下计算的。更多信息 请参阅术语表. |
Less |
2 | 当像素的参考值小于模具缓冲区中的当前值时,呈现像素。 |
Equal |
3 | 当像素的引用值等于模具缓冲区中的当前值时呈现像素。 |
LEqual |
4 | 当像素的参考值小于或等于模具缓冲区中的当前值时,呈现像素。 |
Greater |
5 | 当像素的参考值大于模具缓冲区中的当前值时,呈现像素。 |
NotEqual |
6 | 当像素的参考值与模具缓冲区中的当前值不同时,呈现像素。 |
GEqual |
7 | 当像素的参考值大于或等于模具缓冲区中的当前值时呈现像素。 |
Always |
8 | 始终渲染像素。 |
在 C# 中,这些值由 Rendering.Rendering.StencilOp 枚举表示。
| 价值 | Rendering.StencilOp 枚举中相应的整数值 | 功能 |
|---|---|---|
Keep |
0 | 保留模具缓冲区的当前内容。 |
Zero |
1 | 将 0 写入模具缓冲区。 |
Replace |
2 | 将参考值写入缓冲区。 |
IncrSat |
3 | 递增缓冲区中的当前值。如果该值已经是 255,则保持在 255。 |
DecrSat |
4 | 递减缓冲区中的当前值。如果该值已经为 0,则保持在 0。 |
Invert |
5 | 否定缓冲区中当前值的所有位。 |
IncrWrap |
6 | 递增缓冲区中的当前值。如果该值已经是 255,则变为 0。 |
DecrWrap |
7 | 递减缓冲区中的当前值。如果该值已经为 0,则变为 255。 |