mx_splitlr
mx_splitlr
一个便捷的工具节点,用于在模型表面沿垂直线创建左右分屏视图,轻松对比两种效果或拼接两种材质。
核心优势
它将常见的左右分割对比逻辑封装为单一节点,极大地简化了着色器中的 A/B 测试和调试流程,无需手动组合 `step` 和 `mix` 节点。
常见用途
效果 A/B 对比:将处理前后的节点分别连接,直观比较效果差异。
创建拼接材质:将两种不同的材质或图案分别赋予模型的左右两侧。
教学与效果演示:在同一模型上并排展示原始数据和处理后的结果,如 UV 扭曲。
如何调整
主要通过调整 `center` 参数来控制。将 `center` 的值从 0 动画到 1 可以实现“擦除”或“揭示”的过渡效果。将其连接到一个随时间变化的节点(如 `sin(time)`)则能创造出分割线来回摆动的动态效果。
代码示例
1// 定义左侧和右侧的颜色
2const leftSideColor = color( '#ff0000' );
3const rightSideColor = color( '#00ff00' );
4
5// 定义分割线的位置 (0.5 代表中心)
6const splitPoint = uniform( 0.5 );
7
8// 当 UV.x < splitPoint 时,显示左侧颜色,否则显示右侧颜色
9const finalColor = mx_splitlr( leftSideColor, rightSideColor, splitPoint );