Unity | AmplifyShaderEditor插件基础(第五集:简易移动shader)
一、👋🏻前言
大家好,我是菌菌巧乐兹~本节内容主要讲一下,如何用shader来移动~
我们在上节课的基础上(一个做好的书),继续学习
本节课需要学会一点模型知识:
Unity | 学shader需要知道的模型知识-CSDN博客
二、⏩VertexOffset - 顶点偏移
在模型知识中讲了什么是顶点坐标,那顶点偏移就是在这个坐标的基础上进行变化。
例:
现在顶点坐标是(0.1,0.1,0.1),如果x方向偏移0.2,就会变成(0.3,0.1,0.1)。
三、📊数据节点
鼠标右键出现下方框
里面有六个常用数据,为了考虑有美术生,我稍微讲一下他们的意思
Color 颜色
int 整数
float 小数
Vector2 二维坐标,例(0,0)
Vector3 三维坐标,例(0,0,0)
Vector4 四维坐标,例(0,0,0,0)
四、🚗沿轴移动
因为坐标是xyz三个轴,所以就建立一个Vector3
1.Vector3的常用值介绍
Vector3的设置,左边的这个设置,必须在你选中vector时才会出现
起名注意不要起中文名,会报错
下面是重点,很常用:
a.type 类型
关于Type打开下拉菜单有4个:
constant | 常量 | 只能在你窗口上修改,不能外部更改 |
property | 属性 | 也可以在窗口看见,也可以外部更改,但只要用同一个材质球,都一样 |
Instanced Property | 实例化属性 | 同上,但用同一个材质球,可以用代码给不一样的内容 |
Glbal | 全局 | 所有用这个shader代码的材质,都一起改了 |
备注:这个外部更改的意思就是在材质球上能调
b.precision 精度
inherit 保留原本的精度
half 位数比较少的小数(小数点后16位)
float 位数比较多的小数(小数点后32位)
2.外部移动
精度我们先选inherit
类型先选property
然后保存一下,就可以去外面调节着玩一下了
总结:这就是在shader里让图像动起来的根本原因
3.自动移动(sin Time节点、cos Time节点)
手动移动没有意思,我们希望他自动移动可以用到sinTime
a.sinx介绍
sinx是一个重复的波浪线,出来的数y一致在-1到1之间来回,以0开头
b.sin Time节点
因为sinx是曲线的节奏在-1到1之间晃荡,所以:
连t 按正常的速度,在-1到1之间晃荡
连t/2 按0.5倍速,在-1到1之间晃荡
连t/4 按0.25倍速,在-1到1之间晃荡
连t/8 按0.125倍速,在-1到1之间晃荡
c.cos Time节点
备注:cosTime同理可得,就不多讲了
d.把准备好的节点连接上
此时,它已经会动了,顶点一起动,就导致是集体移动
制作旗子,风帆之类的,就是在这个基础上 ,未来我们会做的,如果评论多的话
e.调整数值
如果你觉得这个移动的太远,或者你想控制移动的方向,比如:我只想在x轴移动,其他方向不想移动,可以做简单的乘法
结果:
同理,移动的幅度,也可以通过调vector0的数据来调
五、结语
非常感谢你的观看,如果你觉得我帮到你了,可以给我点一个赞吗~
我会为此创作更多的文章。