游戏开发技术论坛

 找回密码
 立即注册
搜索
查看: 1577|回复: 0

从头学ShaderGraph 6:深度冰材质

[复制链接]

1万

主题

1万

帖子

3万

积分

版主

Rank: 7Rank: 7Rank: 7

积分
36572
发表于 2020-4-13 11:51:37 | 显示全部楼层 |阅读模式
冰材质,带有深度缝隙。三天更两篇,高产似母猪。还有,走过路过帮我来unity connect收藏点赞吧。

https://connect.unity.com/p/cong ... hen-du-bing-cai-zhi

原作者来自于youtube,案例贴图被压缩过,如需高清贴图可在原网址下载。

深度冰材质

先来张动图

ezgif-1-7ae5b5211b0e.gif

能看到在转动的时候,白色裂缝处仿佛有模型插在里面一样,有深度。

有看过我HDRP节点的朋友应该知道,这就是视差parallax,在HDRP中有现成节点。

不过这次就是来点刺激的,纯用基础节点连出来,也方便一部分朋友理解parallax的原理。下面是全部节点截图。

2.jpg

不要被一堆线吓到,仔细看就是一条循环,分解过程一步步来。

基础材质

3.jpg

没什么能说的,颜色和法线,加了个UV控制。

做一个裂缝

我们需要将贴图,根据视角,将模型表面,向内部压。

做过法线的人都知道,NormalMap是切线空间法线,这在我之前的文章里也有写。所以我们需要压的方向便是:切线空间。

所以我们需要的是:

  • 根据视角=View Direction
  • 模型表面方向压=Tangent的View Direction


本来要转换一下矩阵,但View Direction自带有转换功能,所以直接用。

4.jpg

将UV减去第一层裂缝的厚度,即我们需要的新UV,自己建个参数ParallaxOffset,用来控制厚度。(这里虽然用的是add,但parallax是负数,所以还是减法。)

5.jpg

可以看到已经出来第二层。

6.jpg

为了方便,将计算部分直接框选右键,打组。取名叫Ice Parallax,循环的时候不至于一堆节点。

做一堆裂缝

由于这次的冰凹槽,是黑白图片叠加,所以能把视差偏移后的图片直接混合。

正经的视差是偏移UV,最终输出UV给贴图用。而不是直接输出贴图,好孩子不要学。

先从2个裂缝开始。

7.jpg

2层比1层要更深,颜色要更淡。

左边Add负责深度,右边Lerp负责更淡。

记得将贴图换成Texture 2D Asset,毕竟你不想定义多次图片。

重复这个循环20次,lerp从上到下是:0,0.5,1,1.5...1。也就是分成了20段。

ParallaxOffset调到合适的数值。

上色

将裂缝黑白图与原图混合,混合模式为Overlay。

8.jpg

下面是Overlay公式,a就是Opacity。

我加了一个Pow2.2,应该有人熟悉这个数值,linear转gamma(到底用2.2还是2.5呢,效果差不多)

效果如图,无pow的白色戛然而止,过渡不明显,有pow的就还不错。

9.jpg
最后来张大图

10.jpg

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

下面是我的文件

链接:

文件分享https://share.weiyun.com/5tfG4Rr

密码:qtdxrd

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

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

下面是我的artstation地址:https://www.artstation.com/luteli

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

从头学ShaderGraph :护盾材质

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

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2023-2-5 23:08

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表