mx_divide
mx_divide
MaterialX 兼容的除法函数节点:返回 in1 ÷ in2;当省略 in2 时,默认以 1 相除(返回 in1 本身)。
核心优势
命名与行为对齐 MaterialX,便于迁移/复用现有图;默认分母为 1,减少样板代码,并直接复用 TSL 的 div() 运算。
常见用途
根据两数比值生成归一化因子(如距离/半径)。
按比例缩放或调制某个信号(如粗糙度、发光、遮罩)。
在程序化着色中构建比值、斜率或强度映射。
如何调整
通过改变分子/分母即可调整比值;为避免分母为 0,可结合 EPSILON 使用:mx_divide( a, max( b, EPSILON ) )。
代码示例
1
2// 距离与半径的比值 -> 0~1 强度
3const dist = distance( positionWorld, objectPosition() );
4const factor = mx_divide( dist, float( 5.0 ) ).saturate();
5material.emissiveNode = vec3( factor );
6
7// 省略第二参数时:除以 1(原样透传)
8const passthrough = mx_divide( roughness );
9