unity的软体系统(布料系统)相关

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等,这种比较适合发辫,一整条的网格点的飘动方案。如果需求不高,这些插件就可以实现不错的飘动效果

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值