《Unity Shader入门精要》笔记二

1. 透明度混合
  • Unity提供的混合命令——Blend
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RQHxp5nI-1673939809872)(5590016ADD71408190DF702AB53480FA)]

  • 计算新的颜色
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YJOJo5Nv-1673939809873)(86432CAE5651430FB32116BF75847796)]
    源颜色的混合因子SrcFactor设为SrcAlpha, 目标颜色的混合因子DstFactor设为OneMinusSrcAlhpa

2 ShaderLab的混合命令
  • 源颜色(source color),指的是由片元着色器产生的颜色值
  • 目标颜色(destination color),从颜色缓冲中读取到的颜色值
  • 输出颜色 源颜色和目标颜色进行混合后得到的输出颜色,我们用O表示,它会重新写入到颜色缓冲中
  • 所有的颜色都包含了RGBA四个通道的值

  • 两个混合等式(blend equation)

    • 一个用于混合RGB通道
    • 一个用于混合A通道
  • ShaderLab中设置混合因子的命令
    在这里插入图片描述

  • 将使用同样的混合因子来混合RGB通道和A通道
    在这里插入图片描述

  • ShaderLab中的混合因子
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zyozVV6o-1673939809874)(D9D0685383FF4ED884FF3B216FC1C591)]

  • ShaderLab中的混合操作
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ySI3R18J-1673939809875)(2002090498284B43ABF1CACB87A7481B)]

8.6.3 常见的混合类型
// 正常(Normal),即透明度混合
Blend  SrcAlpha  OneMinusSrcAlpha

// 柔和相加(Soft Additive)
Blend  OneMinusDstColor  One

// 正片叠底(Multiply),即相乘
Blend  DstColor  Zero

// 两倍相乘(2x Multiply)

Blend  DstColor  SrcColor
// 变暗(Darken)
BlendOp  Min
Blend  One  One

// 变亮(Lighten)
BlendOp  Max

Blend  One  One
// 滤色(Screen)
Blend  OneMinusDstColor  One
// 等同于
Blend  One  OneMinusSrcColor

// 线性减淡(Linear Dodge)
Blend  One  One
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值