包含此页的版本:
不含此页的版本:
确定 GPU 如何组合片段的输出着色器在 GPU 上运行的程序。更多信息
请参阅术语表替换为渲染目标。
此命令的功能取决于混合作,您可以使用 BlendOp 命令进行设置。请注意,虽然所有图形 API 和硬件都支持混合本身,但某些混合作的支持更为有限。
启用混合会禁用GPU上的某些优化(主要是隐藏表面移除/Early-Z),这可能导致GPU帧时间增加。
此命令对渲染状态进行更改。在Pass块来设置该通道的渲染状态,或在SubShader块来设置该子着色器中所有通道的渲染状态。
| 功能名称 | 普遍渲染管线(Render Pipeline) 获取场景内容并将其显示在屏幕上的一系列作。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。| 参数 | 价值 | 功能 |
|---|---|---|
| 渲染目标 | 整数,范围 0 到 7 | 呈现目标索引。 |
| 州 | Off |
禁用混合。 |
| 因素 | One |
此输入的值为 1。使用此值可使用源颜色或目标颜色的值。 |
Zero |
此输入的值为零。使用此值可删除源值或目标值。 | |
SrcColor |
GPU 将此输入的值乘以源颜色值。 | |
SrcAlpha |
GPU 将此输入的值乘以源 alpha 值。 | |
SrcAlphaSaturate |
GPU 将此输入的值乘以source alpha和(1 - destination 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在“混合”命令中定义。sourceValue是片段着色器输出的值。operation是混合作。destinationFactor在“混合”命令中定义。destinationValue是目标缓冲区中已有的值。