range
range
range 是一个辅助工具节点,它将一个最小值和最大值打包成一个语义清晰的逻辑单元。它自身不进行计算,而是作为参数传递给其他需要操作区间的节点(如 `remap`),以提高代码的可读性和组织性。
核心优势
极大地提升了着色器节点图的可读性和接口设计的清晰度。通过将 `min` 和 `max` 两个值封装成一个 `range` 对象,它使其他节点(如 `remap`)的意图变得一目了然,并简化了其参数列表。
常见用途
定义值重映射的范围
设定随机数边界
配置材质属性范围
如何调整
调整 `range` 节点的 `min` 和 `max` 值本身没有直接效果。其影响是间接的,通过改变消费此 `range` 节点的其他节点(如 `remap`)的行为来体现。例如,扩大 `remap` 的目标范围会增加输出值的对比度;扩大 `random` 的范围会增强随机效果的强度。
代码示例
1// 定义一个源范围,例如 sin() 函数的输出 [-1, 1]
2const sourceRange = range(-1, 1);
3
4// 定义一个目标范围,例如 [0.2, 0.8]
5const targetRange = range(0.2, 0.8);
6
7// 将一个值从源范围线性映射到目标范围
8const remappedValue = remap(inputValue, sourceRange, targetRange);