Unity shader 混合命令

Blend SrcFactor DstFactor//只设置因子,如果前面不跟BlendOp,默认BlendOp Add 操作。
Color = SrcFactor*S + DstFactor*D//包含了rgba。
其中S表示源颜色当前片元输出的颜色,D表示目标颜色缓存区中的颜色。SrcFactor、DstFactor表示因子。
所有因子如下:
One                             1
Zero                            0
SrcColor                        源颜色
SrcAlpha                        源颜色的Alpha值
DstColor                        目标颜色
DstAlpha                       目标Alpha值
OneMinusSrcColor                1-源颜色值
OneMinusSrcAlpha                1-源Alpha值
OneMinusDstColor                1-目标颜色
OneMinusDstAlpha                1-目标Alpha值
使用例子如下:Blend SrcAlpha OneMinusSrcAlpha //可以实现一般的带alpha通道的图片效果。

BlendOp Operation:Operation是混合操作,用完之后记得加后面的blend命令,有些操作不加Blend会出现黑色的情况如下:
Add                             将源颜色和目标颜色相加(默认的混合操作,即不写blendOp命令时,默认使用该操作)
                                Color = SrcFactor*S + DstFactor*D
Sub                             用源颜色减去目标颜色
                                Color = SrcFactor*S - DstFactor*D
RevSub                          用目标颜色减去源颜色,如果不加Blend 命令会是黑色的
                                Color = DstFactor*D - SrcFactor*S 
Min                             取源颜色和目标颜色重最小的值,按逐分量比较,后面跟再跟Blen命令,貌似没有什么用。
                                ColorR = min(Sr,Dr)
                                ColorG = min(Sg,Dg)
                                ColorB = min(Sb,Db)
                                ColorA = min(Sa,Da)
Max                             取源颜色和目标颜色重最大的值,按逐分量比较,后面跟再跟Blen命令,貌似没有什么用。
                                ColorR = max(Sr,Dr)
                                ColorG = max(Sg,Dg)
                                ColorB = max(Sb,Db)
                                ColorA = max(Sa,Da)

几种常见的混合类型:

//正常(Normal)
Blend SrcAlpha OneMinusSrcAlpha
 
//柔和相加(Soft Addtive)
Blend OneMinusDstAlpha One
 
//正片叠底(Multiply),即相乘
Blend DstColor Zero
 
//两倍相乘(2x Multiply)
Blend DstColor SrcColor
 
//变暗(Darken)
BlendOp Min
 
//变亮(Lighten)
BlendOp Max
 
//滤色(Screen)
Blend OneMinusDstColor One
 
//线性减淡(Linear Dodge)
Blend One One

                                
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值