1.主要内容
软体系统即时常说的布料系统。通过布料系统可以轻松的实现现实中的飘动效果,大大提升在项目中的表现
常见的用处如飘动的裙子,头发,弹力球等需要飘动的地方
2.软体系统内容
现代游戏引擎中实现和集成的模型通常是基于物理方法的质点-弹簧模型(Mass-Spring Model),这一方案具有模型简单且运算效率较高的特点。
在质点-弹簧模型中,布料被当做网格上的粒子来进行模拟,这些粒子之间由弹簧减震器进行连接。每一个弹簧连接两个粒子,并且基于粒子的位置和速度来产生作用力。粒子可以受重力影响,弹簧可以设置为不同的类型,比如拉伸弹簧(stretch springs)、剪切弹簧(Shear Springs)和弯曲弹簧(bend springs)等。
通过修改质点的质量参数,弹簧的类型以及阻尼因子、静息长度等参数,就可以实现丝绸、麻布,甚至竹席等不同的布料效果
3.unity的布料系统(简称cloth)
unity的布料系统理论上可基于顶点编辑所有的粒子元素,质量,弯曲力,世界力,风力等常见元素。
优点:基于顶点编辑,易上手,面向小部位的飘动可以达到很好的效果
缺点:效率较低(1.基于单个粒子。2.单线程),顶点密集时效果不可控
4.magica cloth对比介绍
unity布料系统的插件目前比较出名的有两个,一个是Obi Cloth,另一个是magica Cloth。看了各自的介绍。发现Obi cloth是基于多线程的加速,Magica Cloth是基于jobs和burst的加速。感觉magica cloth技术栈更强一些,旋转了magica cloth作为我们使用的插件。
优点:
1,基于jobs + burst编译的方式大大缩小了物理计算所花费的时间
2,基于可变顶点模型(可将很多顶点合并映射为更少的顶点),可大幅降低计算时间
3,适用性广,基于骨骼的计算方案:bone/mesh bone(网格骨,可做裙子)/bone spring
基于mesh的计算方案:mesh spring/mesh cloth
4.成熟的参数模型。(对于布料系统的参数编辑,需要一个经验非常丰富的人去做,这方面magica cltoh大大降低了我们编辑的门槛)
5.不断更新的算法模型,曲线化的参数调整等等
缺点
1.顶点有65535的限制,若顶点超出,需拆分模型
2.jobs仍然属于unity内实验性的内容,可能会有一点的不稳定性(大型项目慎重)
5.其它
基于骨骼的飘动方案,常见的如dynamic bone, swing bone等,这种比较适合发辫,一整条的网格点的飘动方案。如果需求不高,这些插件就可以实现不错的飘动效果