从头学ShaderGraph 5-护盾材质

从头学ShaderGraph 5-护盾材质

这次来做喜闻乐见的护盾,案例文件会放在文章底部。还有,走过路过帮我来unity connect收藏点赞吧。

灵感来源于Brackeys的youtube教程,但内容更加丰富。
首先创建一个Unlit Graph,将shader设置成Transparent,要不然没法透光。

由于护盾需要双面+透明,ShaderGraph又没法关掉ZWrite。所以我做了个正反两面的球模型,来实现双面护盾。
护盾可以被拆解成三部分。

  • 模型切割处发光
  • 模型边缘发光
  • 贴图区域发光

1.模型切割遮罩

在shaderforge中,有现成的这个节点。名字叫depth blend。

但在shadergraph搜索Depth,只能找到Scene Depth。不过没有关系,我们自己造。

用视线空间的Scene Depth减去Screen Position的alpha。(Scene Depth是除开透明模型之外的深度,Screen Position是所有模型的深度,相减就是边缘)

算出来边缘切割的遮罩,由于黑白反了,所以One minus一下。再选个护盾自发光颜色。

2.模型边缘遮罩

标准的菲涅尔。

shadergraph有自带的菲涅尔节点Fresnel Effect。当然你也可以自己点乘出来。

3.贴图遮罩

需要蜂巢状遮罩,所以做了一张六边形的四方连续贴图。

用滑块做UV Tiling,time加到offset上做UV动画。

由于球模型,顶部和底部UV会拉伸严重。

所以在shader中用sinV做遮罩,使贴图只影响球中间部位。

至此三个区域的遮罩制作完成。

4.颜色

纯色护盾未免有些单调。于是用菲涅尔做遮罩,挑选内外两种颜色混合

最后遮罩连接alpha,颜色连接color

本章结束,来张动图。

都看到这里了,点赞收藏吧。

下面是我的文件

链接:文件分享 密码:caseg9

使用方法:找个HDRP或着URP(LWRP),拖进去。我的文件夹下有预制体。

我的环境:Unity2019.3.0f1 HDRP 7.1.6 ShaderGraph 7.1.6

下面是我的artstation地址:

当然你也能看看我原来写的文章

如需转载请与作者联系并标注作者名字和原始网址

编辑于 2022-01-09 14:56