使用Unity Shader Graph创建去重复化的多贴图混合Terrain地形材质
本文介绍了使用ShaderGraph制作地形遮罩材质的方法,解决Unity地形贴图重复感强的问题。主要内容包括:1)通过参数设置和随机旋转实现去重复效果;2)详细说明8张贴图混合的ShaderGraph制作流程,重点提示节点命名规范;3)提供Photoshop制作遮罩图的分步教程;4)演示如何导入Unity创建材质并应用于地形。该方案支持多贴图混合,用户可通过调整Opacity、MaskOpaci
目录
想必很多人都有过使用Unity Terrain(地形)绘制贴图,常常被一眼望去重复感明显的贴图给劝退。但使用其他材质又无法混合多种贴图,也找不到能一次性覆盖全地形的大贴图(动辄数十亿像素也不清晰)。因此,一个能去重复化又能混合多种贴图的材质需求增高。现已编辑出这样的Shader Graph,欢迎大家模仿使用(默认支持最多8贴图,但可以通过叠加更多遮罩图支持更多贴图)
Shader Graph制作

片段1:参数和随机旋转去重复感
注意:Rotate节点的Unit改为Degrees(角度)
!重要:请将图中的节点名Mask0和Mask1改为Mask_0和Mask_1,否则材质应用在地形上时不会生效!!!(作者放完图才发现的bug,已修复,估计是内部重名了)


片段2:Colormap和Mask输入

片段3:混合与输出
参数介绍:
- Colormap0~7:对应的贴图,分别对应Mask0的R G B A通道、Mask1的R G B A通道
- Mask_0~1:对应的遮罩,用RGBA通道对应贴图的遮罩
- BaseColor:基础色,会Add在最终得到的贴图颜色上,默认为黑色(即不对贴图有影响)
- Mapping:平铺
- Offset:偏移
- Metallic:金属度
- Smoothness:光滑度
- Emission:自发光颜色
- Opacity:对贴图的混合度,0为完全使用Base(即Colormap0、2、4、6),默认为1
- MaskOpacity:对遮罩的混合度,0为禁用Mask_1和Colormap4~7
Mask遮罩图制作
步骤1:Ps中新建一个文件,分别添加R G B A四个图层,在R G B三个图层分别用纯红(255,0,0)、纯绿(0,255,0)、纯蓝(0,0,255)绘制对应的贴图位置

步骤2:打开 工具栏-窗口-通道 ,随后在通道窗口中点击“新建通道”按钮


步骤3:选中A图层,点击新建的Alpha 1通道并隐藏其他通道,用纯白(255,255,255)在黑色背景中绘制想要对应贴图的位置

步骤4:按住Ctrl,左键单击通道中Alpha通道的略缩图(小眼睛后面的小图),这会建立选区

步骤5:在图层窗口中点击“新建遮罩”,创建A图层的遮罩,在重复步骤4、5,分别给剩下的三个图层添加遮罩

步骤6:点击 工具栏-文件-存储副本 ,默认以PSD格式保存即可


导入Unity并使用
右键单击创建的Shader Graph,在菜单中选择 创建-渲染(Rendering)-材质 ,并配置相应的材质参数

因为这里只使用了第一个Mask遮罩,所以将MaskOpacity设置为了0

在Terrain组件中使用该材质(因为不是默认的地形材质,所以会有警告,这意味着不能使用Unity默认的贴图绘制工具)

效果展示

欢迎各位自己改进!
更多推荐
所有评论(0)