1. 概述
shader graph是unity中一种图形化shader编程工具,相对于传统shader代码编程,shader graph可以更快地拖出自己想要的效果,并且可以实时预览每一步的渲染结果,提高shader开发效率,这里总结了几种shader graph实现顶点动画的方式
2. 顶点正弦动画
让模型沿着z轴,随时间进行正弦摆动运动,一般用于动物或尾巴摆动动画
分析动画可以得到:
1.模型顶点的x值和y值都没有发生变化,只有z值会发生变化,因此,可以直接获取模型x值和y值赋给输出
- z值的变化函数,自变量有两个,分别是顶点的x值和当前时间,首先不考虑时间,只将模型扭曲成一个正弦函数图像的样子,可以得到初步公式:
animationZ = z + A * sin(x * Length)
其中,x,z为顶点模型坐标,A为正弦函数振幅,Length为正弦函数周期系数
- 接下来考虑自变量时间,即随着时间变化,将正弦函数沿着x轴移动一段距离,可以得到最终公式
animationZ = z + A * sin(x * Length + Time * Speed)
其中,Time为当前时间,Speed为速度系数
使用shader graph实现效果如下:
3. 顶点噪声动画
让模型顶点沿着y轴不规则波动,一般用于水面的不规则波动动画
分析动画可以得到:
-
模型顶点的x值和z值都没有发声变化,只有y值会发声变化,同理,可以直接获取模型的x值和z值赋给输出
-
首先不考虑时间,需要得到不规则运动的值,可以使用Gradient Noise节点,使用uv从噪声纹理进行采样,就会得到0-1之间的随机值,这里也可以给定一个表示振幅的输入值
- 接下来考虑时间,即随着时间变化,给噪声纹理一个偏移量,可以直接使用Tilling And Offset节点