Unreal地形高级材质之根据斜率分配材质
创始人
2024-04-13 02:09:10
0

目的:根据地形的斜率来混合地形材质,制作地形时,当地形有高度抬升时,被拉伸部位的贴图会出现拉伸,或者想要在拉伸区域使用其他类型种类的贴图时。如果使用笔刷对地形进行更改是耗费时间的,所以想要整体一次性更改,需要使用高度融合节点HeighLerp 及材质层融合节点 MatLayerBlend_Standard 实现。

HeighLerp节点,材质函数,可双击进入查看逻辑。可以理解为 高度的线性插值。可以控制地形在高度上拉伸时,控制填充其他类型贴图高度范围。

MatLayerBlend_Standard节点,材质函数,可双击进入查看逻辑。可理解为顶层和基础层的混合。地形在高度上拉伸时,想象成一个高度内拥有两端及中间区域,需要两端显示的材质链接TopMaterial节点,中间拉伸部位显示的材质链接BaseMaterial节点,Alpha:插值系数

 

TopMaterial节点一般链接地形现有层材质即可。

拉伸区域的材质需要自定义材质函数。

 2 创建岩石材质函数(拉伸区域的材质需要自定义材质函数)(希望在地形高度差的位置上表现的材质)

1 创建一个材质函数

2 创建岩石材质函数

worldalignedtextures_complex 节点:

 

备注:在模型拉伸使想要让贴图跟随物体拉伸,进行平铺使用WorldAlignedTextures节点即可实现效果. 

 

在地形高度融合中,根据高度区域大小实现贴图平铺,需要使用WorldAlignedTextures_Complex节点完成,此节点是一个材质函数,官网没有解释。可以理解为 官方提供了一个规则,让我们直接按照规则使用。

将材质蓝图中的贴图转换为纹理对象,不同类型的贴图与WorldAlignedTextures_Complex中对应节点链接。
 

注意:所有连接到WorldAlignedTextures_Complex节点的贴图输入项后边括号内标有(T2d)的都要转为2d纹理(选中贴图右键“转换为纹理对象”)

 使用worldAlignedTextures节点设置后无法直接进行输出,需要使用制作材质属性节点(MakeMaterialAttributes)来输出

如果需要再额外输出ao等信息需要新建output节点

注意这里处理UV贴图重复度的方式~  第三个参数TextureSize是UV重复度值,我们需要外部将此参数值传入,需要创建输入节点命名为 UV重复度,控制板搜索input选择FunctionInput。将节点类型更改为函数输入标量(实际上就是个一维)。x默认值设置成300。

 

 最后使用时候需要创建一个函数从这里输入tilling值,如果这里没有输入则使用节点上的默认值。

 

 最后岩石材质函数节点

3 然后创建普通地表贴图的材质函数:(草地之类的)

1创建材质函数:

2地表贴图的材质

4 地面材质蓝图公式:

创建一个材质球,将两个岩石材质函数拖入,创建一个一维参数节点(命名:小岩石贴图大小)连接到小岩石材质函数的Tiling(这里如果不输入参数的话贴图大小就默认制作材质函数时输入的x:800为默认参数);

      创建一个LinearInterpolate(简:Lerp 线性插值),三维常量和一维参数节点(小岩石法线混合值),将三维常量连接到Lerpde的A点并设B通道为1,将小岩石材质函数的Normal连接到B点,一维参数节点连入Alpha通道;
      创建一个Transform(空间转换,将线性空间转换代世界空间),选中Transform节点在细节面板的Source选项改为‘Tangent Space’,Destination选项改为‘World Space’;z再将Lerp连接到Transform 
      转换到世界空间后Transform的数值范围是无穷大的,所以需要一个归一化节点Normalize约束一下数值在一定范围内(0-1);
      创建一个DotProduct(简:Dot)将Normalize节点连接到A点,再把刚刚创建的三维常量节点连接B点,这样是世界空间与原始数据对比;
将得出的对比数据连接到ConstantBiasScale节点(常量偏差比例);

创建一个Layer Blend节点将绘的材质函数连接起来,有几个残值函数添加几个混合层,每个混合层的混合模式改为高度混合(Blend Type: LB Height Blend),还要设置每个绘制层的混合权重(Preview Weight);

 

 

 

最后完整的材质节点图:

然后创建材质实例,赋予地形就OK~

enjoy~  地形坡度两层岩石地表混合方式完成~    

下面为简单的地形坡度地表混合节点图:

地表节点图

高度范围值逻辑

完整的材质节点图

 

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...