Unity--shadergraph--UV dissolve

1.首先我们在shader文件夹下新建一个blank shader graph

操作:右键-create-shader-blank shader graph

2.然后在inspector面板中点击open进入

3.找到shadergraph面板右上角的graph inspector,点一下会出来下面这个面板,再点一下它会消失。

点击下universal下面的这个小加号,添加universal,然后就会出来下面这个面板。

上面的是顶点面板,下面的是碎片面板。UV流动我们只需要用到碎片面板的base color功能。

4.左上角会有一个面板,对应blackboard图标。如果你这个面板不见了点一下blackboard它就出来了。我们需要添加这三个参数(color、texture2D、vector4),右上角加号可以在blackboard中添加参数,单击可以重命名。

修改参数设置可以先单击参数,再点击graph inspector,就可以更改图片和颜色以及数字信息了。

 注意:默认的颜色模式是default,如果你想要让你的颜色更亮,需要修改mode为HDR模式。

HDR模式仅存在于URP管线和HDRP管线中,如果你的场景是普通3D场景,是没有这个选项的。

把exposed勾选上,这样可以在shader 材质球中更改这些信息。

5.然后我们开始添加主图模块(Main Texture)

 右键添加上图中这些节点,然后连起来就行了,线和图片的删除是选中然后Delete。

sample texture 2D的左边有三个节点,我们只需要用到上面两个。

左边:

texture连到黑板上的main texture,UV连到tilling and offset 的output上。

右边:

RGBA是所有通道信息。R\G\B\A分别代表red、green、blue、alpha通道信息。

因为要添加颜色的信息,所以我们添加一个multiply面板,将color和sample texture 2D的output相乘,连到Fragmet面板的basecolor上。

6.添加tilling and offset 模块

 这里解释下为什么要这样连接

因为tilling和offset都有两个方向可以调节,你可以分别给这两个节点两个vector2(2维向量)

这里是把vector4分开(split)成两组再组合(combine)成二维向量连到这两个节点上,前两个R、G连的是tilling,后两个B、A连的是offset。

这样做就是这些参数都会出现在一行里面,你可以取名tilling and offset

如果你连两个二维向量就是出现两行,你可以分别取名tilling \offset

7.一些基本操作

快捷键F:回到shadergraph面板中心

点击节点+快捷键F:快速回到该节点中心

在空白面板处点击右键-collapse all preview:关闭所有节点预览

在节点上右键-open documentation:打开官方说明书

框选所需节点,在蓝色框内右键-group selection:类似于ps的成组功能

测试节点:preview、slider--非常实用

8.由于教程使用的是2018版本,而2020版本的unity没有alpha和alphaclipthreshold这两个结点,右键搜索也没有找到(百度搜了半天也没人科普,官方手册missing...)

 

后来我发现它在graph inspector里面:勾选上alpha clip选项就出来啦

material模式:发光材质lit;不发光材质unlit

workflow模式:specular镜面;metallic金属

surface模式:opaque不透明;transparent半透明

 然后我们创建一个preview节点和float节点,将float节点的模式改成slide,就可以在inspector里手动溶解了。以纹理贴图的单通道作为溶解贴图会使溶解顺着贴图纹理,看起来更加自然。

 

原理:alphaclipthreshold是alpha通道的剪裁阈值,当alpha通道里面的色彩信息小于阈值的色彩信息的时候,小于的部分就会被剪裁掉。我的理解是类似于ps里面的阈值选区功能。

 9.边缘发光溶解shader

dissolve部分

 原理:

sintime正弦函数的值范围是-1~1之间,导入remap输出0~1之间的值

sintime+remap这两步可以导出一个在0~1之间循环波动的一个时间值x

step节点:Returns 1 if the value of input In is greater than or equal to the value of input Edge, otherwise returns 0.当输入的值大于等于输入的edge的色彩信息的时候输出1,否则输出0。这是一个非黑即白的函数。这个操作可以将噪波贴图处理成黑白关系清晰的图片。

时间值x加上一个常量t---输出一个滞后的时间值y

时间值y导入到step节点中就会让输出的图形比alpha通道输出的图形不一致

如果这个常量t是一个很小的数字,那么我们就能得到一个比alpha通道输出的图形略大一点的图形

再将这个图形导入到emission通道,就能获得边缘发光效果。

猜你喜欢

转载自blog.csdn.net/m0_67817307/article/details/124564464
今日推荐