【转载】Unreal地形高级材质之根据斜率分配材质
地编场景制作3D场景引擎地编地图编辑 7730 8
实名

通过了实名认证的内容创造者

发布于 2023-12-19 22:29:11

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 V贪婪 于 2019-3-20 12:58 编辑

关于unreal的地形以及基本的材质,之前各大佬已经很详细的介绍过,大都主要基于基本的地形创建分层材质。现在设想,如果我们做好了一片草地,后面还想用工具刷出带有一定坡度的小山,而实际上刷的时候如果坡度达到一定的值,泥土和草是会剥落露出里面的岩石的,所以我们就可以用高级一点的地形材质来根据斜率的变化自动加载不同的材质。


首先,我们随便新建一个landscape,任意大小。然后创建我们的基本材质球,如下图;

640.webp.jpg
然后按照规矩添加Layerblend节点。然后给layerblend添加三层材质分别代表泥土,草地和湖泊。Blend模式直接默认weight blend,然后给简单的输入一个纯色作为贴图。(除了输入纯色做贴图以外,如果我们更改layerblend属性中ConstLayerInout的值,在默认没有输入的情况下,材质就会直接计算这个参数的值,比如当x=y=0,z=1的时候,就是蓝色)
640.webp (1).jpg
现在我们把这个简单的材质先赋给地形,并创建weight-blended layer

我们现在随意将三种材质刷到地形中。如果我现在在三种颜色交界的地方用sculpt增加一座有坡度的小山

我们会发现得到的结果并不自然,因为在自然状态下,这种接近九十度的坡度,泥土和草根本是不可能存在的。所以需要我们添加另外一种材质,岩石的材质。
重新进入到我们的材质球,首先需要添加一个材质混合节点叫做MatLayerBlend_StandardWithDisplacement,


此节点用于混合两个材质球,类似于blend节点。Topmaterial输入的则是我们的三层混合材质。Basematerial输入我们的基本材质,也就是我们要添加的岩石的材质,这里给一个灰色。但是当我们把三维的灰色直接给连到basematerial的input里面的时候,发现连不上,因为这边需要输入的是一个材质球,现在只是一个数据,还算不得一个material,所以我们还需要用MakeMaterialAttributes节点来进行转化,效果如下;

接着我们在把混合后的材质节点连接到basecolor的时候,发现也无法连入,是因为我们不能够用默认定义好的材质属性,需要勾选上Use Material Attribute来自定义我们的材质。

现在我们保存一下,然后进入到地形中观察,发现所有的地形都变成了我们定义的岩石灰色,是因为我们还没有给alpha添加数值,所以默认应用的是basematerial。

现在我们开始来给alpha添加数值,也就是我们要进行的斜率算法。
首先我们需要用VertexNormalWS获取地形中每一个顶点的世界法线坐标,因为我们的贴图映射是根据Z轴来映射的,所以斜率的换算就是每个点z轴的换算,所以我们用ComponentMask(提取通道)获取世界法线的z值(只勾选B通道)


然后为我们的坡度定义一个范围gradient(default value:0, Slider Min:0, Slider Max:1),并将z轴的值减去坡度,即得到我们想要漏出岩石的那一部分斜率范围;

此时的过渡是很生硬的过渡,所以我们需要给不过度边缘添加细节渐变,除以自定义渐变值roughness(default value:0.5, Slider Min:0, Slider Max:1)

由于materialblend需要输入的是一个alpha值,所以我们需要用saturate将值限定在0-1的范围,然后连入materialblend的alpha输入中,保存;

为方便调节,我们给mat_landscape创建一个材质实例,然后将材质实例给地形,调节gradient的值和roughness的值发现,如果增加gradient的值,就会得到更多的岩石材质,如果增加roughness的值,边缘的分界线就会更加明显,渐变更少。

以上就是完成的最后效果图,有兴趣可以将纯色贴图换成正经材质球,效果会更好。

原文在:https://mp.weixin.qq.com/s?__biz=MzUzMjEwMzE3Nw==&mid=2247499676&idx=1&sn=7140ee2491e1d10e5df7d876334cffb1&chksm=fabad6facdcd5feccba2afc30b4c1b071ff6f1a73112124011fcd2757181a7eb6fd8c49c855c&mpshare=1&scene=23&srcid=#rd

0.jpg

评分

参与人数 1元素币 +10 展开 理由
元素大使瓜... + 10 【给力】阅贴无数,楼主最强!

查看全部评分

再大的事,到了明天就是小事,再深的痛,过去了就把它忘记,就算全世界都抛弃了你,你依然也要坚定前行,因为,你就是自己最大的底气。
使用道具 <
星舰与太阳  发表于 2019-4-20 15:14:25  
2#
学习了
回复 收起回复
使用道具
夜明はを灯す  发表于 2019-7-29 20:36:37  
3#
B站上不是有一样的
回复 收起回复
使用道具
qq_Eternal_Ik8  发表于 2020-1-12 20:24:48  
4#

看了你的评论然后打开B站,然而并没有找到。。。。
回复 收起回复
使用道具
qq_木子李_H0H  发表于 2020-3-4 16:57:38  
5#
厉害
回复 收起回复
使用道具
行忍慈尊者  发表于 2020-4-20 12:00:27  
6#
楼主发的截图不清楚
回复 收起回复
使用道具
台笑大方  发表于 2021-2-5 17:37:49  
7#
需要这种,希望多分享些
回复 收起回复
使用道具
冯建飞  发表于 2021-2-6 00:16:30  
8#
元素辣么大~我想去干干
土豪金那么少~啥也杠不了
回复 收起回复
使用道具
qq_刘阳_dNT  发表于 2021-2-20 10:02:12  
9#
建议搞一个效果图贴出来,效果会更好
回复 收起回复
使用道具
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表