包含此页的版本:
不含此页的版本:
指定“混合”命令使用的混合作。要使此命令产生任何效果,同一 Pass 块(如果此命令位于 Pass 块中)或 SubShader 块(如果此命令位于 SubShader 块中)中还必须有一个 Blend 命令。
并非所有设备都支持所有混合作,支持取决于图形 API 和硬件。不同的图形 API 以不同的方式处理不受支持的混合作:GL 跳过不受支持的作,而 Vulkan 和 Metal 回退到 Add作。
| 功能名称 | 普遍渲染管线(Render Pipeline) 获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管道中进行选择,或编写自己的渲染管道。更多信息 请参阅术语表(URP) |
高清渲染管线 (HDRP) | 定制 SRP | 内置渲染管线 |
|---|---|---|---|---|
| 混合作 | 是的 | 是的 | 是的 | 是的 |
此命令对渲染状态进行更改。在Pass块来设置该通道的渲染状态,或在SubShader块来设置该子着色器中所有通道的渲染状态。
| 签名 | 语法示例 | 功能 |
|---|---|---|
BlendOp <operation> |
BlendOp Sub |
设置“混合”命令使用的混合作。 |
| 参数 | 价值 | 功能 |
|---|---|---|
| 操作 | Add |
将源和目标一起添加。 |
Sub |
从源中减去目标。 | |
RevSub |
从目标中减去源。 | |
Min |
使用源和目标中较小的一个。 | |
Max |
使用源和目标中较大者。 | |
LogicalClear |
逻辑运算:Clear (0)(1) |
|
LogicalSet |
逻辑运算:Set (1)(1) |
|
LogicalCopy |
逻辑运算:Copy (s)(1) |
|
LogicalCopyInverted |
逻辑运算:Copy inverted (!s)2 |
|
LogicalNoop |
逻辑运算:Noop (d)(1) |
|
LogicalInvert |
逻辑运算:Invert (!d)(1) |
|
LogicalAnd |
逻辑运算:And (s & d)(1) |
|
LogicalNand |
逻辑运算:Nand !(s & d)(1) |
|
LogicalOr |
逻辑运算:Or (s | d)(1) |
|
LogicalNor |
逻辑运算:Nor !(s | d)(1) |
|
LogicalXor |
逻辑运算:Xor (s ^ d)(1) |
|
LogicalEquiv |
逻辑运算:Equivalence !(s ^ d)(1) |
|
LogicalAndReverse |
逻辑运算:Reverse And (s & !d)(1) |
|
LogicalAndInverted |
逻辑运算:Inverted And (!s & d)(1) |
|
LogicalOrReverse |
逻辑运算:Reverse Or (s | !d)(1) |
|
LogicalOrInverted |
逻辑运算:Inverted Or (!s | d)(1) |
|
Multiply |
高级 OpenGL 混合作:Multiply(2) |
|
Screen |
高级 OpenGL 混合作:Screen(2) |
|
Overlay |
高级 OpenGL 混合作:Overlay(2) |
|
Darken |
高级 OpenGL 混合作:Darken(2) |
|
Lighten |
高级 OpenGL 混合作:Lighten(2) |
|
ColorDodge |
高级 OpenGL 混合作:ColorDodge(2) |
|
ColorBurn |
高级 OpenGL 混合作:ColorBurn(2) |
|
HardLight |
高级 OpenGL 混合作:HardLight(2) |
|
SoftLight |
高级 OpenGL 混合作:SoftLight(2) |
|
Difference |
高级 OpenGL 混合作:Difference(2) |
|
Exclusion |
高级 OpenGL 混合作:Exclusion(2) |
|
HSLHue |
高级 OpenGL 混合作:HSLHue(2) |
|
HSLSaturation |
高级 OpenGL 混合作:HSLSaturation(2) |
|
HSLColor |
高级 OpenGL 混合作:HSLColor(2) |
|
HSLLuminosity |
高级 OpenGL 混合作:HSLLuminosity(2) |
笔记:
GLES3.1 AEP+,GL_KHR_blend_equation_advanced或GL_NV_blend_equation_advanced.它们只能与标准 RGBA 混合一起使用;它们与单独的 RGB 和 alpha 混合不兼容。Shader "Examples/CommandExample"
{
SubShader
{
// The rest of the code that defines the SubShader goes here.
Pass
{
// Enable subtractive blending for this Pass
Blend SrcAlpha One
BlendOp RevSub
// The rest of the code that defines the Pass goes here.
}
}
}
此示例代码演示了在 SubShader 块中使用此命令的语法。
Shader "Examples/CommandExample"
{
SubShader
{
// Enable subtractive blending for this SubShader
Blend SrcAlpha One
BlendOp RevSub
// The rest of the code that defines the SubShader goes here.
Pass
{
// The rest of the code that defines the Pass goes here.
}
}
}