ue4 改变枢轴位置_【UE4地形】轻松实现UE4自动地貌和自动植被分布

今天是2020年11月09日  星期一

正文共:2624字 48图  预计阅读时间7分

首先介绍下我们制作自动地貌所需要的节点顺序不分先后90326f29c205bb0d6fcd301b8a698f71.png
  • Break MaterialAttributes(中断材质属性)
在使用 分层材质 ("材质功能"系统的一项特性)时,BreakMaterialAttributes(中断材质属性)表达式十分理想。在材质中使用 材质层功能 时,您可能想只使用材质层的某一个方面。例如,您可能有一个定义漂亮的一般材质(如钢铁)的材质层。您可能希望在最终材质中仅使用该材质层的"粗糙度"和"底色"属性,而不是使用整个材质层。在此类情况下,您可使用 BreakMaterialAttributes(中断材质属性)节点对材质层的所有传入属性进行拆分,然后仅连接所需的属性。这也使您能够对各种材质属性进行复杂混合。173acd6a34d1f484ca2458c1857632a7.png
  • Grass植被输入
f85c68e1635750d5c7f2a94bfa6375bb.png
  • LandscapeLayerBlend(景观混合层)
fc2ee5bc1ae2e80436a55a9c3df9d62d.png添加多张地表材质
  • Sample None(地形图层采样)
景观混合器种权重信息配合Grass
  • Normalize(归一化)
数据压缩例如最小值-100最大值+100通过归一化可以将数据统计为0-1
  • Landscapecoords(景观坐标)
677f07af2b69b5d22e37a5e69937d56a.png控制地表材质平铺tiling Normalize 表达式计算并输出其输入的归一化值。归一化矢量(也称"单位矢量")的整体长度为1.0。这意味着输入的每个分量都除以矢量的总大小(长度)。 示例:通过Normalize传递(0,2,0)或(0,0.2,0)都将输出(0,1,0)。通过Normalize传递(0,1,-1)将输出(0, 0.707, -0.707)。全零矢量是唯一的例外,它不会改变。cc070eb35f332bb4e6d44b9c16ecdb2e.pngbcfa9972ad00d0ade650b632fe2c7ac7.png
  • Dot
A 接受一个值或任意长度的矢量。  B 接受一个值或具有与 A 相同长度的矢量。 1b7f176edd6aa28090de258bba9b5c4e.png
  • Transformvector(空间坐标转换)
03a9492384dc76c04b930969502e4a1e.pngTransform(转换)表达式将三通道矢量值从一种参考坐标系转换到另一种参考坐标系。 默认情况下,材质的所有着色器计算都在切线空间中完成。矢量常量、摄像机矢量和光线矢量等在材质中使用之前,都会转换到切线空间。Transform(转换)表达式允许将这些矢量从切线空间转换到全局空间、局部空间或视图空间坐标系。另外,它允许将全局空间和局部空间矢量转换到任何其他参考坐标系。 源(Source) 指定要转换的矢量的当前坐标系。这可以是以下其中一项:全局(World)、局部(Local)或切线(Tangent)。  目标(Destination) 指定要将矢量转换到的目标坐标系。这可以是以下其中一项:全局(World)、视图(View)、局部(Local)或切线(Tangent)。  Transform(转换)节点会对镜像 UV 加以考虑,例如,以使凸显仅影响人物的右侧边缘。 对于生成全局空间法线以便对立方体贴图进行取样,Transform(转换)节点非常有用。法线贴图可转换到全局空间。以下示例将法线转换到全局空间,以便对立方体贴图进行取样:6fda433c66be1f540096149db0bd9a9b.png
  • ConstantBiasScale(常量偏差比例)
常量偏差比例(ConstantBiasScale) 表达式接收输入值,加上偏差值,然后乘以比例缩放系数并输出结果。例如,要将输入数据从[-1,1] 转换到[0,1],请使用偏差值1.0和比例缩放系数0.5。 偏差(Bias) 指定要与输入相加的值。  比例(Scale) 指定偏差结果的乘数。 e49bf98aa1ddf4c55f209fc2c00afdee.png
  • Make Material Attributes(建立材质属性)
MakeMaterialAttributes(建立材质属性)节点的作用与 BreakMaterialAttributes(中断材质属性)节点正好相反。此节点将各属性汇聚到一起,而不是拆分属性。这在您创建自己的 材质层 功能时非常有用,因为您将能够访问所有的标准属性以用于输出。此节点也可用于复杂材质设置,在这些设置中,您希望定义多种类型的材质,并将它们全部混合到一个材质中。2fe20df7b0042cbe373a90952a8db9f3.png
  • Heightlerp(高度线性差集 针对材质)
905d5eab1ca687204e2d9ec1c84c5a46.png978b022f57ae72bade9862617f45bf37.png针对图片
  • Matlayerblend_Standard
e724852d9aa15d2cd4b3c114debac903.png接下来我们实际操作下,在地形高低不等情况下如何实现自动化材质 打开ue4新建地形、新建材质球、新建节点b6d74a880946bf0d5690cf9df48f0a8b.png创建好材质球后赋予给地形进入绘制模式就可以看到我们创建的材质层4ec26e0f9178a04dee159aaedcff0002.png接下来保存我们层信息选择保存位置按照制作规范保存,接下来就可以直接在地表上刷纹理了4ff69a43cfb3b49d36a24b05ee4b48bb.png5d19a31bdbf99a7d600c515ab121a916.png以上是基础地表纹理设置下面我们来设置我们节点参数 首先将我们材质转换为材质属性51b1010002b4f7f42eb9a80a3120965e.png新建节点后相连f5f18a187c990511c95a84f7b35ace99.png有了顶层材质我们设置下底层地面到入一张贴图土地f34cca79b290b720591327b13e289c47.png需要转换下在连接ac1de01539f2a77cd07804fb0f7893c0.pnge6463e08fd7e247cfdd55b62471da68f.png
  1. 新建三维常量数值(0.0.1)切线空间也代表R.G.B 1=b也就是蓝色朝上面
  2. 切线空间转换世界空间
  3. 新建归一化节点(因为转换了世界空间坐标不是0.0.1我们要将其变成0.0.1)
  4. 空间向量运算是否等于1
  5. 常量偏差比(无论dot运算结果如何最终都会转化0-1)
  6. 控制线性差值也就是斜坡材质范围(为了后期方便调节)
  7. 常量控制边缘过度
2cc650c14a599a84de94d31151a297e7.png整个公式就是在计算红色区域范围,过渡值是侧面材质与上下两面衔接是否柔和7dc175dc97a7f02d1e2e93ad06bea9a5.png8afddcda1c640e103967375071a1ff72.png黄色区域大小1f4f72a23725f0514bca87bb20f8074b.png值得注意的是黄色区域是不能再绘制模式下通过笔刷绘制其他地表贴图的 第二种方法 导入我们准备好的地表贴图左下角星形表示资源未保存5dc3e223f694ab7f40e711b590c8ef0e.png新建材质和材质函数_材质是为了做地表分层、材质函数制作高度的识别 ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍518075130119ccde82c63809c9b810aa.png‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍    ba6a6714606b39d7de4f36b8fc4135e2.png将我们地面和侧面山石到入函数新建输入节点input注意选择预览模式设置排序d3008fa9be39d3f80163b1636adb8ca0.pngd44ab01e10803631f46ee0a147e3c7eb.png材质函数节点36303eed8b4c1726912697fd9e8952ce.png材质617c2ea8490a54a92cbce9a9d0b6c786.png
  1. 材质函数____我们的基础材质(地表和刷起高度后侧面两种材质)
  2. 基础材质外其他地表材质可以增加多张pc端
两种方式实现同一效果看实际应用中那个更适合 接下来我们在制作下根据地表区域分配植被这就用到我们Grass灌木节点 准备我们地形中分配资源数 灌木 草导入到ue4赋予材质贴图 接下来回到我们之前制作好的节点中运用之前介绍的节点Grass可以创建多组数据添加数据组元素 草 树 灌木57e6129f8eb98ae6f914b76fd1abe368.png回到我们材质资源目录新建地形草地类型aa86b9cb5e47eaa7ab724076ae2b82c8.png创建好后我们进入设置添加我们植被,并且进行简单设置。c43d31ff72bec7edba05553725e1a20e.png植被节点名称需要和混合图层名字一一对应ae7ebbaf70d32446dcc68293ddd490e1.png我们已经通过地表权重实现了植被分布,但是有个问题我们侧面高度也被赋予了模型这不是我们想要的所以还要做一步排除121bc3cd12300c5dbf9d42270684f869.png新建节点Oneminus 1-节点5de793e06c6793133be6f0ba93692f03.png减法008a1915dba52ae167a3c5d9f228a26b.png自动分配植被这一段完整的节点258f887b3623a28fe5bf0cf4e0ed19c0.png最终效果排除了侧面出现的植被测试文件惨不忍睹大家看实现方式忽略效果86a1a83ec0740a245c2787fadbff9484.png有关地形相关笔记基本就是这样 转发分享这篇文章获得封面工程文件 下期预告:UE4灯光基础

f4762be10e192c341f84a1cf83095f48.png

本期分享就到这里!更多精彩+++关注联系我们   

下期见,学习不止,不止学习

ac2aa1cdec482c4028615d9a5b3949e8.png

微信群服务号

08c769c8c37d2aac3ef7494b7a61c036.png

公众号

c60c0f9640e57357dea62e0e25bdc556.png

B站