Ue5.2 数字孪生(3)——地形材质基于WorldPosition绝对世界位置高度混合草地和泥土图层

WorldPosition绝对世界位置:

  • WorldPosition绝对世界位置节点,通过Mask节点获取B通道(Z轴)数值对草地和泥土两张贴图进行插值;
    两张贴图纹理进行混合,上面(高出)显示草地,下面(低处)显示泥土纹理;
  • 用减法添加控制草地和泥土过渡高度的参数;
  • 由于两个纹理过渡太过生硬不自然;这里可以使用除法来控制混合的强度;
  • 这里同样可以使用噪波纹理,使两个纹理再过渡过程中出现不规则的锯齿效果,更贴近现实;
  • 将草地和泥土贴图基于世界高度混合的结果连接基础颜色;再游戏视口中调整,混合高度以及混合强度等参数,即可获得基于地形高度自动生成草地和泥土纹理的地形材质;
    需要注意地形再世界场景中的位置;
  • 这里,我们只对草地和泥土贴图中的颜色贴图进行了高度的混合,其余的高光和法线贴图同样需要进行混合才能到正确的地形纹理信息;
    由于多张贴图需要进行混合,这里我们引入材质函数来简化材质图表连线;

材质函数:

  • 将代表草地的颜色、高光、法线贴图合并成只有一个输出节点的材质函数;
  • 创建材质贴图函数:
  • 设置颜色、高光、法线三个输入向量
  • 将材质贴图函数拖到地形材质中,分别连接代表草地和泥土的三张贴图;
    在将材质贴图函数进行Lerp插值时,出现数值属性不兼容的情况;
  • 系统自带Lerp函数只支持浮点数值,这里我们需要单独创建一个专门用于插值贴图函数的Lerp函数;
  • 同样的方式创建Lerp函数,将两个材质中的基础颜色、粗糙度、法线分别进行插值,再合成新的材质;
    需要注意的是,我们的输入值是两个材质属性,和一个Alpha浮点数值;
  • 最后将Lerp材质插值函数拖到地形材质图表中,基于世界高度将地形和草地两个贴图函数进行插值,最后输出,查看草地和泥土混合效果;
  • 需要将地形材质结果节点转换成材质属性节点,才能进行连接;
  • 最终效果:基于地形高度自动生草地纹理和泥土纹理;
### 关于Unreal Engine 5材质的全局位置偏移 在 Unreal Engine 5 (UE5)材质系统中,实现全局位置偏移通常涉及使用世界坐标系中的顶点位置来调整模型的位置。这种技术可以用于创建动态效果,例如波浪、地形变形或其他基于空间坐标的视觉变化。 以下是具体方法: #### 使用 `World Position` 节点 可以通过 `World Position` 材质表达节点获取当前片段的世界空间位置[^1]。此节点返回的是三维向量 `(X, Y, Z)`,表示该像素在场景中的绝对位置。通过修改这个值并将其应用于最终的颜色或法线计算,可以实现各种基于位置的效果。 #### 实现步骤概述 为了应用全局位置偏移,在材质编辑器中需要设置如下参数: 1. **输入节点**: 添加一个 `Vector Parameter` 或者直接硬编码一个矢量作为偏移方向。 2. **操作逻辑**: 将上述得到的世界位置与定义好的偏移量相加减乘除等运算处理。 3. **输出结果**: 把经过变换后的数据连接到合适的材质属性上比如 Displacement 或 Normal Map 输入端口。 下面给出一段伪代码展示如何利用 HLSL 编写自定义着色器来进行这样的操作: ```hlsl float3 worldPos = input.WorldPosition; // 获取世界空间下的当前位置 float3 offsetDirection = float3(0.1f, 0.0f, 0.0f); // 定义一个简单的x轴正向移动 worldPos += offsetDirection * timeFactor; // 加入时间因子让位移随帧更新而改变 return worldPos; ``` 注意这里的时间变量(`timeFactor`)应该由外部提供或者内部生成以便控制动画速度平滑度. 另外值得注意的一点是在某些特定情况下可能还需要考虑多线程环境的影响以及资源清理等问题以确保程序稳定运行.[^3] 最后提醒一下虽然引用里提到的内容主要是针对UE4版本但大部分概念同样适用于最新的引擎迭代即UE5当中只是可能存在细微差异而已.[^4]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值