sin
sin
一个强大的数学函数,用于将任何线性输入(如时间或坐标)转换为平滑的周期性波形(-1 到 1),是创建振荡、波动和有机图案的基础。
核心优势
作为 GPU 原生支持的高性能函数,它能以极高效率在着色器中实时生成平滑的、可预测的程序化动态效果(如波浪、呼吸动画),无需依赖外部动画数据,极大节省了资源。
常见用途
程序化水面或波浪效果
平滑的循环动画(如呼吸、脉冲)
生成条纹、网格等有机图案
如何调整
通过对 `sin` 的输入进行数学运算来调整。乘以一个常数(频率)可以控制波纹的疏密;加上一个随时间变化的值(如 `timerLocal()`)可以使图案动起来(相位移动)。
代码示例
1// 基于 UV.x 创建一个随时间变化的波
2const wave = sin( uv().x.mul(10).add( timerLocal(2) ) );
3
4// 将 [-1, 1] 的结果映射到 [0, 1] 用于颜色或位移
5const value = wave.mul(0.5).add(0.5);