惜颜705 发表于 2020-12-21 10:13

Unity 2019.3目前系列出现的cloth问题

(声明:本文章所有用到的图片和源码,只为了学习和研究用途,未经我同意,不得进行转载或者其他用途,否则自行承担所有法律后果,郑重推荐大家购买Unity正版源码)
其实是比较无语的,因为错误都是明显的码农拷贝代码,不review,然后qa也测试不到位造成的。目前没看到论坛有人反馈,不过我还是这里写下吧,给那些有源码的人修改。没有源码的可能只能等着他们更新,不知道要到啥时候。目前这2个bug,我们的专家同学已经修正了下了(不是我,我对了2遍1.14和3.6的都没发现,年老眼花了),可能以后还会有其他的bug,这里就先写下我们修正的吧,贡献点力量,其实你看到代码,你就会知道了。1.14的版本是对的,3.6的是不对的,其实3.10,3.11也是错误的。一度让人怀疑是否是physx3.4和4.1的问题,其实都不是。
1。Tethers的问题
就是这个地方,发现这个设置一点用处都没。导致得结果就是布没有约束,当然你可以强制加很多contrains,但是结果还是不对。这个变量得作用也是对拉扯加约束,你会发现你快速拉扯cloth得时候,cloth会被拉得很长,变形,乱飘。来看代码:Modules\Cloth\Cloth.cpp
void Cloth::Create() 这个函数得这一部分
1.14版本:
其实就是设置一下参数,设置data,count,stride三个,但是大家看3.6f1得代码,你就发现了:
3.6f1:
发现没有,invMasses.data呢,没设置。
大家可以参照1.14得修改就行,或者自己弄个invmasses数组来设置数据都可以
2.这个更奇怪,现象就是你一根杆子上挂块cloth,和一个碰撞体碰撞,是没问题得,但是你围个圈后,你碰撞体移动过去,没碰到,它cloth就开始表演了,而且cloth上开始各种凸点,很混乱。这个问题专家同学也查了2天,找到地方了。这个可能gif演示比较好,算了,碰到了就知道错误了
SetUseVirtualParticles函数里面
还是照着1.14改好就行了,indices设置错了
页: [1]
查看完整版本: Unity 2019.3目前系列出现的cloth问题