MMD联动Unity学习笔记 Vol.46 Unity Shader Graph 节点解析:向量基础Input Basic续

前言
这期我们还是跟着官方的视频学习Unity里关于Shader Graph的内容,这期这个系列的第二讲:向量基础Input Basic(下)。



常数、整数、滑动条节点 …
首先,我们看一下常数、整数、滑动条节点,整数节点会定义一个一维向量的整数节点,并可以右键转换为Property中的参数。而滑动条节点可以定义一个有限区间内会滑杆动态调整的一维向量。而常数节点可以定义一个为数学常数的一维向量。

它分为以下五类:圆周率 ,2倍圆周率,黄金分割率,欧拉数,2的平方根。
时间节点…
时间节点则允许用户访问Shader中的各项时间参数,通常来讲,如果你想创建动态的Shader或是加一些受时间影响的节点,我们都需要用到时间节点。

这个节点一共有五个输出端,它们分别是时间值、时间正弦值、时间余弦值、当前帧时间、平滑后的当前帧时间。这里需要注意的是,当前帧时间是指从前一帧到后一帧的时间,虽然它的使用范围较少,我们也会在以后的案例中演示一下。
颜色节点…
顾名思义,就是定义了一个可以调整颜色的四维向量。有Default和HDR两种颜色模式,它也允许被右键转换为Property里面的参数。
布尔节点…
它在Shader Graph中定义了一个布尔值,在代码中则表现为0或者1的常量,用来进行相应的逻辑判断,它也允许被右键转换为Property里面的参数,来进行后续的控制。

案例练习 用Shader让贴图起来~
接下来我们结合本小节讲到的节点来完成一个小练习。
首先创建一 个Sample Texture 2D节点和Sample Texture 2D Asset节点,来给Shader添加对应的贴图

这个练习需要让整个贴图随着时间的变化流动起来。我们可以看到整个Tilling And Offset节点有三个输入端,它们分别是UV、Tilling和Offset

所以我们需要创建UV节点来获取当前模型的UV值,并在Tilling中输入1,为X,Y的重复值。因为我们需要一个变化的参数来赋值给Offset。再回想刚才学习的Time节点,是不是正好符合我们的需求。

那么我们把Time节点Input到Offset里,我们可以看到整个材质就流动起来了。但这个时候就有了一个新的需求,我们需要控制贴图流动的速度,所以这样我们需要引入一个Slider节点,来控制贴图的流动速度。

把Slider节点和Time节点相乘,就可以控制它现在的流动速度了。我们可以通过引入布尔节点和Branch节点来分别控制时间值和时间正弦值的不同效果。

最后,如果想要调整贴图的颜色,我们还可以加入之前学过的Color节点,再输入到Master Node之前,和最后的结果相乘,就能改变贴图的颜色了。

那么,这样一个流动的Shader就完成了。
