什么是Shader里的lerp

《质量效应》谢泼德指挥官

step 函数嘚逻辑是

step 通常用来取代 if-else 的代码下面看一个使用 step 函数的示例

片元着色器中,若当前片元距离中心超过 _Amount 值时返回颜色值 _Color否则返回黑色。这裏的内置函数 length 作用是计算两个参数的距离效果图:

lerp 函数的定义是

b 的差值,w 越接近0返回结果越接近a,w越接近1返回结果??接近1,通常用来计算一些渐变量。

实现了一个渐变效果图片中心 uv 值为 (0.5,0.5),从图片中心向外渐变距离中心越近,颜色越接近黑色距离越远,颜色越接近 _Color 颜色效果图


smoothstep可以用来生成0到1的平滑过渡值,它也叫平滑阶梯函数smoothstep定义是

smoothstep 的函数图像我们可以得到灵感,如何在 Shader 中使用平滑过渡函数

该楼层疑似违规已被系统折叠 

写unity shader嘚时候发现一个很奇怪的函数lerp()当在像素着色函数中使用lerp(color1, color2, t)对两个颜色进行插值时,我的理解t应该是一个权重值范围在0~1之间,当t大于1时应該也得到color2然而事实上我动态地改变t,当t等于1时得到color2t继续增大时颜色会继续加强,并不是固定输出color2


我要回帖

 

随机推荐