abs
abs
一个函数节点,用于计算其输入值的绝对值(分量级)。它将所有负值“翻转”为正值,而正值保持不变。
核心优势
核心优势在于能以极低的计算成本轻松创建对称性并确保数值非负。它是程序化图案、UV 镜像效果和特定动画行为(如弹跳、脉冲)的基础构建模块。
常见用途
UV 镜像:通过 `abs(uv.x - 0.5)` 等操作,在纹理中心线创建对称的镜像效果。
脉冲/弹跳动画:将 `sin(time)` 等平滑振荡通过 `abs` 转换为 `abs(sin(time))`,创造出连续的弹跳或脉冲动画。
程序化几何图案:作为基础,通过组合 UV 坐标的绝对值来生成菱形、棋盘格等图案。
数值校正:确保某些中间计算结果(如强度、蒙版)为非负数,以保证其物理意义。
如何调整
abs 节点本身没有可调整的参数,其输出效果完全由其输入节点决定。例如,输入一个 `sin(time)` 波形会产生弹跳动画,而输入经过处理的 UV 坐标则会产生视觉上的镜像或对称图案。
代码示例
1// 将 UV.x 从 [0, 1] 映射到 [-1, 1],再取绝对值
2// 这会创造一个从中心向两侧对称的“V”形渐变
3const mirroredUvX = TSL.abs( uv.x.mul( 2 ).sub( 1 ) );