10.Unity ShaderGraph实例(LWRP+UnitMaster节点制作渐变色效果的精灵)

Node:Position
Node:Rotate
Node:Split
Node:Add
ShaderGraph:基于自身UV的旋转
ShaderGraph:基于已有贴图的颜色叠加


效果展示

10.Unity ShaderGraph实例(LWRP+UnitMaster节点制作渐变色效果的精灵)_第1张图片
10.Unity ShaderGraph实例(LWRP+UnitMaster节点制作渐变色效果的精灵)_第2张图片

Node:Position

10.Unity ShaderGraph实例(LWRP+UnitMaster节点制作渐变色效果的精灵)_第3张图片
功能定义

提供对网格顶点或片段位置的访问,具体取决于节点所属图形部分的有效着色器阶段;
输出值的坐标空间可以通过空间下拉参数选择。

端口介绍
在这里插入图片描述
控制类型
10.Unity ShaderGraph实例(LWRP+UnitMaster节点制作渐变色效果的精灵)_第4张图片


Node:Rotate

10.Unity ShaderGraph实例(LWRP+UnitMaster节点制作渐变色效果的精灵)_第5张图片
功能定义

旋转输入的UV值,基于中心点(Center)和输入值(Rotation);输入的单位可以选择角度或者弧度。

端口介绍
10.Unity ShaderGraph实例(LWRP+UnitMaster节点制作渐变色效果的精灵)_第6张图片
控制类型
在这里插入图片描述
代码生成
10.Unity ShaderGraph实例(LWRP+UnitMaster节点制作渐变色效果的精灵)_第7张图片


Node:Split

10.Unity ShaderGraph实例(LWRP+UnitMaster节点制作渐变色效果的精灵)_第8张图片
功能定义

将输入向量分成四个向量1输出R、G、B和A,这些输出向量由输入的各个通道定义,分别为红色、绿色、蓝色和alpha;如果输入向量的维数小于4(向量4),则输入中不存在的输出值将为0。

端口介绍
10.Unity ShaderGraph实例(LWRP+UnitMaster节点制作渐变色效果的精灵)_第9张图片
代码生成

float _Split_R = In[0];
float _Split_G = In[1];
float _Split_B = 0;
float _Split_A = 0;

Node:Add

10.Unity ShaderGraph实例(LWRP+UnitMaster节点制作渐变色效果的精灵)_第10张图片
功能定义

返回两个值A和B相加的总数

端口介绍
在这里插入图片描述
代码生成

void Unity_Add_float4(float4 A, float4 B, out float4 Out)
{
    Out = A + B;
}

ShaderGraph:基于自身UV的旋转

Thinking in logic
基于自身UV的旋转
首先需要获取到UV坐标,通过Position的Object指向物体本身即可获取物体本身的坐标信息
我们当前的物体是贴图,那么获取到的是UV信息
再通过Rotate来旋转UV信息,指定输入UV,从Position那里获取,还要指定中心点和旋转大小
Rotate的UV,也就是2d的平面旋转,只会依照中心点的z轴来进行逆时针方向旋转
10.Unity ShaderGraph实例(LWRP+UnitMaster节点制作渐变色效果的精灵)_第11张图片

ShaderGraph:基于已有贴图的颜色叠加

Multiply 和 Add的使用方法
如果是基于已有的数据进行叠加的时候,使用Multiply,如果是进行增量则使用Add
我们这里是渐变,渐变需要一个渐变方向和在这个方向渐变的位置
10.Unity ShaderGraph实例(LWRP+UnitMaster节点制作渐变色效果的精灵)_第12张图片
从Position输出的UV到Rotate也是UV信息,经过Split,我们需要分离UV坐标信息,U是横坐标,V是竖坐标;为什么取第二个G呢,因为输入的是二维度,输出也只有二维度,G代表V表示是竖坐标;
方向有了,还需要一个渐变的位置信息、渐变强度和调整渐变位置,因为有些图片的中心点不一定在中心,或者渐变不需要在中心位置上进行
10.Unity ShaderGraph实例(LWRP+UnitMaster节点制作渐变色效果的精灵)_第13张图片
第一个Multiplay是设置在v轴上的渐变强度,第二个Add是调整渐变位置比例


你可能感兴趣的:(ShaderGraph)