Smoothstep 节点
描述
如果输入 In 的值位于输入 Edge1 和 Edge2 的值之间,返回 0 和 1 之间的平滑埃尔米特插值结果。如果输入 In 的值小于输入 Step1 的值,返回 0;如果大于输入 Step2 的值,返回 1。
此节点类似于 Lerp 节点,但存在两个显著差异。首先,使用此节点时,由用户指定范围,返回值介于 0 和 1 之间。这可视为与 Lerp 节点相反。其次,此节点采用平滑埃尔米特插值,而不是线性插值。这意味着插值从开始后将逐渐加快速度,并在接近结束时减慢速度。这对于创建自然的动画、淡入淡出和其他过渡非常有用。
端口
名称 | 方向 | 类型 | 描述 |
---|---|---|---|
Edge1 | 输入 | 动态矢量 | 最小步长值 |
Edge2 | 输入 | 动态矢量 | 最大步长值 |
In | 输入 | 动态矢量 | 输入值 |
Out | 输出 | 动态矢量 | 输出值 |
生成的代码示例
以下示例代码表示此节点的一种可能结果。
void Unity_Smoothstep_float4(float4 Edge1, float4 Edge2, float4 In, out float4 Out)
{
Out = smoothstep(Step1, Step2, In);
}