从头学ShaderGraph :护盾材质

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

https://connect.unity.com/p/cong ... ph-5-hu-dun-cai-zhi

灵感来源于Brackeys的youtube教程,但内容更加丰富。

首先创建一个Unlit Graph,将shader设置成Transparent,要不然没法透光。


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

护盾可以被拆解成三部分。

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



1.模型切割遮罩

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


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


用视线空间的Scene Depth减去Screen Position的alpha。(我想了半天没搞懂是怎么算出来的,有好心人告诉我原理吗。)

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


2.模型边缘遮罩

标准的菲涅尔。

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


3.贴图遮罩

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


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


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


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


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

4.颜色

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


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

本章结束,来张动图。


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

下面是我的文件

链接:https://share.weiyun.com/58mRhnO

密码:thtw3e

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

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

下面是我的artstation地址:

https://www.artstation.com/luteli

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

https://www.zhihu.com/people/lute-li/posts

相关阅读:
从头学ShaderGraph :UV与基础材质
从头学ShaderGraph:雪材质

作者:Lute Li
专栏地址:https://zhuanlan.zhihu.com/p/109547098

最新评论
暂无评论
参与评论

商务合作 查看更多

编辑推荐 查看更多