Hello . 大家好,今天即兴给大家分享一些关于Unreal地形高级材质之根据斜率分配材质,我是木偶心没。
关于unreal的地形以及基本的材质,之前各大佬已经很详细的介绍过,大都主要基于基本的地形创建分层材质。现在设想,如果我们做好了一片草地,后面还想用工具刷出带有一定坡度的小山,而实际上刷的时候如果坡度达到一定的值,泥土和草是会剥落露出里面的岩石的,所以我们就可以用高级一点的地形材质来根据斜率的变化自动加载不同的材质。
首先,我们随便新建一个landscape,任意大小。然后创建我们的基本材质球,如下图;
然后按照规矩添加Layerblend节点。然后给layerblend添加三层材质分别代表泥土,草地和湖泊。Blend模式直接默认weight blend,然后给简单的输入一个纯色作为贴图。(除了输入纯色做贴图以外,如果我们更改layerblend属性中ConstLayerInout的值,在默认没有输入的情况下,材质就会直接计算这个参数的值,比如当x=y=0,z=1的时候,就是蓝色)
现在我们把这个简单的材质先赋给地形,并创建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的值,边缘的分界线就会更加明显,渐变更少。
以上就是完成的最后效果图,有兴趣可以将纯色贴图换成正经材质球,效果会更好。
来源:Thepoly公众号
下一篇 UE4偏门实用技巧分享
热门课程
专业讲师指导 快速摆脱技能困惑相关文章
多种教程 总有一个适合自己专业问题咨询
你担心的问题,火星帮你解答023年以来,在版号审批、出海政策等影响下,新品游戏大量涌现,这也为游戏市场带来了一些新变量、新现象。
学习游戏开发班可以帮助游戏爱好者从零基础成为游戏开发专家,掌握全面的游戏开发技能。
火星时代教育为您提供专业的界面设计实战班,在实践中掌握界面设计的核心技巧和最新趋势,成为优秀的UI设计师。
了解UI交互设计培训的最佳选择,比较不同培训机构的优势和特点。
火星时代教育为您推荐专业的学影视后期培训机构,提供高质量的培训内容及资深导师指导,助您成为优秀的影视后期剪辑师或合成师。
火星时代教育是一家专注于交互设计培训的机构,为学员提供专业的交互设计培训课程,并帮助他们成为优秀的交互设计师。
1. 打开微信扫一扫,扫描左侧二维码
2. 添加老师微信,马上领取免费课程资源
同学您好!