Unity Shader的Lerp()函数

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()函数有这个独特的性质,才能用来调整颜色的亮度、饱和度和对比度。

猜你喜欢

转载自blog.csdn.net/suixinger_lmh/article/details/125315231