Fn
Fn
允许开发者使用 JavaScript 语法创建可复用的 GLSL 函数,并将其封装为 TSL 节点,无缝集成到节点网络中。
核心优势
将复杂的计算逻辑(如数学公式、程序化图案)封装成单一、可复用的节点,极大地提高了代码的可读性、可维护性和抽象层次,避免了手动拼接节点或编写原生 GLSL 字符串的繁琐工作。
常见用途
封装复杂的数学或物理公式(如 PBR 函数)
创建程序化图案生成器(如棋盘格、条纹)
构建可复用的工具函数(如 lerp、remap)
抽象带有判断条件的逻辑流(如安全除法)
如何调整
Fn 本身不可调整。它的作用是创建新的、可配置的节点。例如,你可以用 Fn 创建一个'脉动光环'节点,并为其定义 speed 和 radius 等输入参数。在主程序中,通过改变传递给这些参数的 uniform 值,可以实时控制光环的脉动速度和大小,从而实现丰富的视觉变化。
代码示例
1// 创建一个安全的除法函数,避免分母为零
2const safeDivide = Fn(( { a, b } ) =>
3 If( b.lessThan( 1e-6 ), 0, a.div( b ) )
4).once();