确定 GPU 如何将片段 着色器在 GPU 上运行的程序。 更多信息
查看 词汇表 的输出与渲染目标组合在一起。
此命令的功能取决于混合操作,您可以使用 BlendOp 命令设置混合操作。请注意,虽然所有图形 API 和硬件都支持混合本身,但某些混合操作的支持范围更有限。
启用混合会禁用 GPU 上的一些优化(主要是隐藏表面移除/早期 Z),这会导致 GPU 帧时间增加。
此命令会更改渲染状态。在 Pass 块中使用它来设置该 Pass 的渲染状态,或在 SubShader 块中使用它来设置该 SubShader 中所有 Pass 的渲染状态。
| 功能名称 | 通用 渲染管线一系列操作,将场景内容显示在屏幕上。Unity 允许您选择预制渲染管线,或编写自己的渲染管线。 更多信息 查看 词汇表 (URP) | 高保真渲染管线 (HDRP) | 自定义 SRP | 内置渲染管线 | 
|---|---|---|---|---|
| 混合 | 是 | 是 | 是 | 是 | 
| 签名 | 示例语法 | 函数 | 
|---|---|---|
| Blend <state> | Blend Off | 禁用默认渲染目标的混合。这是默认值。 | 
| Blend <render target> <state> | Blend 1 Off | 同上,但针对给定渲染目标。(1) | 
| Blend <source factor> <destination factor> | Blend One Zero | 启用默认渲染目标的混合。为 RGBA 值设置混合因子。 | 
| Blend <render target> <source factor> <destination factor> | Blend 1 One Zero | 同上,但针对给定渲染目标。(1) | 
| Blend <source factor RGB> <destination factor RGB>, <source factor alpha> <destination factor alpha> | Blend One Zero, Zero One | 启用默认渲染目标的混合。为 RGB 和 alpha 值设置单独的混合因子。(2) | 
| Blend <render target> <source factor RGB> <destination factor RGB>, <source factor alpha> <destination factor alpha> | Blend 1 One Zero, Zero One | 同上,但针对给定渲染目标。(1) (2) | 
如果启用混合,则会发生以下情况
Add。Add、Sub、RevSub、Min 或 Max,则 GPU 会将片段着色器输出的值乘以源因子。Add、Sub、RevSub、Min 或 Max,则 GPU 会将渲染目标中已有的值乘以目标因子。备注
GL_ARB_draw_buffers_blend 或 OpenGL ES 3.2。| 参数 | 值 | 函数 | 
|---|---|---|
| render target | 整数,范围为 0 到 7 | 渲染目标索引。 | 
| state | Off | 禁用混合。 | 
| factor | One | 此输入的值为 1。使用此值以使用源颜色或目标颜色的值。 | 
| Zero | 此输入的值为 0。使用此值以删除源值或目标值。 | |
| SrcColor | GPU 将此输入的值乘以源颜色值。 | |
| SrcAlpha | GPU 将此输入的值乘以源 alpha 值。 | |
| SrcAlphaSaturate | GPU 将此输入的值乘以 源 alpha和(1 - 目标 alpha)的最小值。 | |
| DstColor | GPU 将此输入的值乘以帧缓冲区源颜色值。 | |
| DstAlpha | GPU 将此输入的值乘以帧缓冲区源 alpha 值。 | |
| OneMinusSrcColor | GPU 将此输入的值乘以 (1 - 源颜色)。 | |
| OneMinusSrcAlpha | GPU 将此输入的值乘以 (1 - 源 alpha)。 | |
| OneMinusDstColor | GPU 将此输入的值乘以 (1 - 目标颜色)。 | |
| OneMinusDstAlpha | GPU 将此输入的值乘以 (1 - 目标 alpha)。 | 
混合方程式为
finalValue = sourceFactor * sourceValue operation destinationFactor * destinationValue
在此方程式中
finalValue 是 GPU 写入目标缓冲区的值。sourceFactor 在 Blend 命令中定义。sourceValue 是片段着色器输出的值。operation 是混合操作。destinationFactor 在 Blend 命令中定义。destinationValue 是目标缓冲区中已有的值。