Unity3d 实现顶点动画

发表于2017-06-16
评论0 5.2k浏览
顶点着色器动画可以减少动画的开销,并减少关节joint的数量,下面就用几个例子来给大家讲述顶点shader动画,想知道的可以学习下。

开始举的例子都很简单,可以着手一试
 
 
 
关于vertex color是自定义的一个贴图,会控制各种参数下面会说明
接下来的例子是一个怪物的“收缩”,类似气泡沸腾有凹有凸的动态效果
 
蓝色通道是cos函数的相位,控制了凹凸动作的“时差”,产生沸腾效果的根本原因
红色通道控制整体收缩大小(程度)
可以通过添加通道来添加控制相位变量的数量,从而增加凹凸效果的多样性和复杂性
 


虚幻引擎的例子
 

效果如下:



下一个是实现头发随风飘动,效果超赞
 

这里增加了一个noise,通过一张模糊过的(为了效果平滑)noise贴图实现
和上一个例子一样,
红色通道:飘动强度
蓝色通道:相位时差
 
 

用可爱的塞拉酱的实现效果如下:

强烈飘动:

轻微飘动



还可以用贴图实现整体变化,可以用来模拟动画,表情动画等等
 
 
 




下一个例子是模拟绳子的弹性

通过looseness和wire slack两个变量来控制振幅
 
 

实现结果:

手头没有绳子模型,,随便找了个石头模型拉长代替了。。。。



然后最后一个感觉很重要的就是旋转
通过各顶点与如下相乘来旋转物体,基础知识,不知道的快去恶补数学
 

 

实现结果如下:

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引