remapClamp
remapClamp
将一个数值从输入范围线性地重映射到输出范围,并确保结果被严格限制(钳制)在输出范围内。
核心优势
它提供了安全的范围重映射,通过自动钳制输出来杜绝数值溢出导致的视觉错误。它是 `remap(...).clamp(...)` 的便捷快捷方式,使代码更健壮、更简洁。
常见用途
控制严格范围的材质属性(如透明度、粗糙度)
创建带有硬边界的视觉效果(如光环、条纹)
UI 元素状态可视化(如进度条)
如何调整
通过调整输入范围(`inLow`, `inHigh`)来定义渐变过渡的区域和两侧被钳制的平台区。例如,收紧输入范围会使过渡更陡峭;反转输出范围(如 `1, 0`)可以创建反向衰减的光晕或孔洞效果。
代码示例
1// 定义我们感兴趣的输入范围,例如屏幕中央 20% 的宽度
2const inLow = float( 0.4 );
3const inHigh = float( 0.6 );
4
5// 当 uv.x 在 [0.4, 0.6] 之外时,结果将被钳制在 0 或 1
6const clampedGradient = remapClamp( uv().x, inLow, inHigh );