SrcFactor 为源颜色
DstFactor 为目标颜色
Orgb=SrcFactor×Srgb+DstFactor×Drgb
Oa=SrcFactor×Sa+DstFactor×Da
ShaderLab中设置混合因子的命令:
命令 | 描述 |
---|---|
Blend SrcFactor DstFactor | 开启混合,并设置混合因子,具体公式如上,降最终颜色混合 |
Blend SrcFactor DstFactor,ScrFactorA DstFactorA | 和上面一样,只是使用不同的因子混合 |
最终的RGB通过源颜色和目标颜色的RGB得出来,混合后的RGB
最终的A通过源颜色和目标颜色的A得出来,混合后的A
ShaderLab中的混合因子:
参数 | 描述 |
---|---|
One | 因子为1 |
Zero | 因子为0 |
SrcColor | 源颜色值 |
SrcAlpha | 源颜色的透明通道的值 |
DstColor | 目标颜色值 |
DstAlpha | 目标颜色的透明通道的值 |
OneMinusSrcColor | 1-源颜色值 |
OneMinusSrcAlpha | 1-源颜色的透明通道的值 |
OneMinusDstColor | 1-目标颜色值 |
OneMinusDstAlpha | 1-目标颜色的透明通道的值 |
Blend operations混合操作
Add(源颜色+目标颜色):
Orgb = SrcFactor*Srgb + DstFactor*Drgb
Oa = SrcFactorA*Sa + DstFactorA*Da
Sub(源颜色-目标颜色):
Orgb = SrcFactor*Srgb - DstFactor*Drgb
Oa = SrcFactorA*Sa - DstFactorA*Da
RevSub(目标颜色-源颜色):
Orgb = DstFactor*Drgb - SrcFactor*Srgb
Oa = DstFactorA*Da - SrcFactorA*Sa
Min(取源颜色和目标颜色最小值(与混合因子无关)):
Orgba =(min(Sr,Cr), min(Sg,Cg), min(Sb,Cb), min(Sa,Ca))
Max(取源颜色和目标颜色最大值(与混合因子无关)):
Orgba =(max(Sr,Cr), max (Sg,Cg), max (Sb,Cb), max (Sa,Ca))
PS:数学公式不知道为什么会多出来个|,希望有知道的大神告诉我一下