mx_power
mx_power
MaterialX 兼容的幂函数封装。对输入执行分量级幂运算 in1^in2,当省略第二参时指数默认为 float(1)(恒等)。
核心优势
与 MaterialX 命名和语义对齐,迁移/复用 mx_* 图块更顺畅;等价于 pow(in1, in2) 但提供默认指数,便于逐步塑形数值曲线。
常见用途
伽马或曝光风格的响应曲线
距离/蒙版的非线性塑形
强调或柔化高光、粗糙度等 PBR 参数
对噪声、深度等标量做重映射
如何调整
核心调节为第二参数 in2(指数):>1 压暗前段、拉亮尾段;0<in2<1 提亮前段、柔化过渡;=1 恒等。输入为 vecN 时逐通道生效。数值稳定性:对可能为 0 或负值的底数,先做 max(in1, 1e-6) 或 clamp(in1, 0.0, 1.0) 以避免 NaN。
代码示例
1// 使用幂函数塑形横向 UV 渐变后混合两色
2const t = uv().x;
3const shaped = mx_power( t, float( 2.2 ) ); // 指数>1:前段压暗
4material.colorNode = mix( color( 0x0ea5e9 ), color( 0xf59e0b ), shaped );