Unity shader 什么时候颜色应该 相加 相乘 ?

写shader的时候 经常会看到 颜色相乘 相加 为啥呢 新手肯定一头雾水
首先要明确一点 颜色的rgb的每个值都是[0,1]
颜色值相乘必然会使颜色值减小(物体更暗),相加必然会使颜色值增加更加接近1(物体更亮)
在计算光照反射时,经过物体材质的反射,光的颜色必然是经过削弱的,所以在计算光照反射时用颜色值相乘。
而在计算贴图采样颜色和环境光颜色时,也用了颜色值相乘,这是因为这时候计算的是两个颜色值的混合。在现实生活中,把很多不同颜色的颜料混合在一起时,他们的颜色最后会变为黑色。这说明他们的颜色值都是越来越小的,rgb值越来越趋近于0,所以才会变成黑色。所以在计算两个颜色值的混合时用颜色相乘。
然后就是颜色相加,在最后返回像素颜色的时候,用的时环境光颜色和漫反射颜色、高光反射颜色相加。这是因为不同类型的光照计算必然是要让物体变亮的(即颜色值增加),所以在计算各种不同的光照效果叠加时应用颜色值相加。
就是下面俩链接
https://zhuanlan.zhihu.com/p/522941696
https://juejin.cn/post/6844903682463662088

乘的时候 因为都不到1 乘就颜色变暗 接近黑色( 个人理解 有点类似油漆混合 颜色越多颜色越深 )
加的时候 颜色变白 (是不是和太阳光一个道理?颜色越多越接近白色)

看下面两张图
在这里插入图片描述
相乘
在这里插入图片描述
相加
在这里插入图片描述
相减
在这里插入图片描述
相加除以2
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值