remap
remap
将一个已知范围内的数值,按比例线性地转换到另一个不同的数值范围中,常用于数据归一化或调整效果强度。
核心优势
将一个常用的线性插值公式封装为单个、可读性强的函数,极大地简化了数学转换,使开发者能更专注于艺术效果的实现。
常见用途
程序化地形生成(将噪声映射到高度)
控制视觉效果强度(如菲涅尔效应)
驱动周期性动画(将正弦波映射到缩放范围)
如何调整
通过调整输入和输出范围来控制效果。例如,反转输出范围(如 `1, 0`)可以颠倒渐变方向;收紧输入范围(如 `0.4, 0.6`)可以创造出高对比度的硬过渡效果。设置 `.doClamp = true` 可将超出范围的输出值限制在目标范围内。
代码示例
1// timerLocal().sin() 会产生一个在 [-1, 1] 范围内的平滑振荡值
2const oscillatingValue = timerLocal().sin();
3
4// 使用 remap 将其原始范围 [-1, 1] 映射到默认的目标范围 [0, 1]
5const normalizedPulse = remap( oscillatingValue, float( -1 ), float( 1 ) );