Unity 社区
29
10

从头学ShaderGraph 5-护盾材质

Lute-Li
A Leisurely Artist
阅读 1680
2020年2月23日
这次来做喜闻乐见的护盾,案例文件会放在文章底部。走过路过点个赞收个藏吧。
灵感来源于Brackeys的
youtube https://www.youtube.com/watch?v=NiOGWZXBg4Y
教程,但内容更加丰富。
首先创建一个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 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.artstation.com/luteli
当然你也能看看我原来写的文章
https://www.zhihu.com/people/lute-li/posts https://www.zhihu.com/people/lute-li/posts
如需转载请与作者联系并标注作者名字和原始网址
发布于技术交流
10条评论
shadow小光
老师您好,我想请教您一个关于您文章中提到的模型边缘发光的问题。 就是在shadergraph里我设置了材质球的边缘自发光,用的我您文章中提到的unity自带的那个Fresnel Effect节点。我在右边预览里能看到效果,但是把材质球赋给左边的模型却看不出有边缘自发光的效果,是哪一步出错了呢。 然后就是,我把Fresnel节点直接连到Alpha上的话,边缘就是很宅的一条硬边,没有像您位置里的那种过度效果,即使我调整了Fresnel的power参数也达不到您做的效果。希望您能帮帮我
shadow小光
我解决了。。是软件bug,我换个版本就好了
Lute-Li
回复
shadow小光
恭喜恭喜
休伯利安号清洁工
PROS
这个被遮挡部分的剔除太妙了😍学到了
Lute-Li
可是为什么呢
黄奕祥
图形玩家
Lute-Li
连连看

AI

全新AI功能上线

1. 基于Unity微调:专为Unity优化,提供精准高效的支持。

2. 深度集成:内置于团结引擎,随时查阅与学习。

3. 多功能支持:全面解决技术问题与学习需求。

AI