smoothstepElement
smoothstepElement
是 `smoothstep` 的便捷别名,功能完全相同,但采用了更符合直觉的 `(x, low, high)` 参数顺序,将需要判断的值放在首位。
核心优势
通过将正在处理的值 `x` 置于首位,增强了代码的可读性,使其与 `clamp` 等函数的风格保持一致,从而降低因参数顺序记错而引发的风险。
常见用途
程序化生成软边遮罩(用法同 smoothstep)
平滑混合多种材质(用法同 smoothstep)
为动画添加缓动效果(用法同 smoothstep)
如何调整
调整效果与 `smoothstep` 完全相同。通过调整 `low` 和 `high` 参数的差值来控制过渡区域的柔和度。交换 `low` 和 `high` 的顺序会反转效果(使输出从 1 插值到 0)。
代码示例
1// 计算距中心的距离 (0.0 to ~0.707)
2const dist = distance(uv(), vec2(0.5));
3
4// 使用 (x, high, low) 顺序进行反向平滑过渡
5// 注意被测试的值 dist 是第一个参数
6const circle = smoothstepElement(dist, 0.3, 0.2);