sinc
sinc
生成一个具有“冲击-衰减”特性的复杂波形,可用于模拟涟漪、冲击波或弹跳动画曲线,其特点是包含一个主波峰和一系列后续的、幅度递减的振荡。
核心优势
它用一个简洁的函数调用,就生成了理想的涟漪或弹跳动画波形,无需手动组合多个数学节点。同时,通过 `k` 参数可以直观地控制涟漪或弹跳的次数,提供了强大的艺术控制力。
常见用途
以到中心点的距离为输入,程序化地生成涟漪或冲击波效果
作为高级缓动函数,模拟物体落地后弹跳几次的动画曲线
生成类似声波或光波干涉的、具有多个同心圆环的复杂图案
如何调整
主要通过调整 `k` 参数来控制波形的视觉复杂度。`k` 值越大,在 [0, 1] 输入区间内的涟漪或弹跳次数就越多、越密集。将 `x` 输入改为到某点的距离,可以创造同心圆效果。
代码示例
1// 使用一个 0-1 的值(如 uv().x)作为输入 x
2// 使用 k 参数控制振荡次数
3const k = float( 8.0 );
4const sincNode = sinc( uv().x, k );
5
6// 取其绝对值,将波形转为可视的颜色/遮罩
7const visualWave = sincNode.abs();