目录

Shader Graph制作

Mask遮罩图制作

导入Unity并使用


        想必很多人都有过使用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默认的贴图绘制工具)


效果展示

欢迎各位自己改进!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐