lerp(a, b, w);
这里主要想说的是这个函数输入值w的区间
只要在搜索引擎中搜索“unity lerp函数”,查到的博客、资料都会跟你说w值只能是0~1之间的数,有的博客还会说如果你输入的w值超出了[0,1],就会被限制为0或者1。
所以我当时就很懵,因为在《Unity Shader入门精要》中输入的w值都超过了[0,1]这个区间
后来我发现,其实Unity Shader中的Lerp()函数是把ab之间的差值等分为了无数份,这是因为01之间能等分为多少份不可估量。这时就能根据w值在[0,1]中的什么位置,来定义Lerp()应该输出什么值。
当w<0时,输出的值就是 输入值a减去每一份的差值;当w>1时,输出的值就是 输入值b加上每一份的差值。也就是因为Lerp()函数有这个独特的性质,才能用来调整颜色的亮度、饱和度和对比度。