mx_splittb
mx_splittb
一个便捷的工具节点,用于在模型表面沿水平线创建上下分屏视图,轻松实现分层效果或垂直方向的视觉对比。
核心优势
它将常见的上下分割逻辑封装为单一节点,极大地简化了创建分层材质(如地平线、雪山)和垂直过渡动画的过程,无需手动编写基于Y坐标的混合代码。
常见用途
创建程序化地平线或水面,上方为天空,下方为大地。
基于世界高度模拟山顶积雪效果。
制作内容从底部向上“填充”或从顶部向下“擦除”的垂直过渡动画。
如何调整
主要通过调整 `center` 参数来控制。将 `center` 的值从 0 动画到 1 可以实现“填充”或“幕布降下”的过渡效果。将 `center` 与一个基于X坐标的波形函数相加,可以创建波浪形的分割线。将 `texcoord` 设为世界坐标Y值,可创建固定的世界水平面效果。
代码示例
1// 定义顶部(天空)和底部(草地)的颜色
2const topColor = color( '#87CEEB' );
3const bottomColor = color( '#7CFC00' );
4
5// 定义地平线的位置
6const horizonLevel = uniform( 0.5 );
7
8// 当 UV.y >= horizonLevel 时,显示顶部颜色,否则显示底部颜色
9const finalColor = mx_splittb( topColor, bottomColor, horizonLevel );