如何设置布料的IterationCount才能在高帧率的情况下不会出错

开发环境一般在60帧左右,所以制作时候的Iteration Count也是以60帧环境为基础设置,并测试下来不会出错。

然后因为打包出来的Shipping版本,游戏的运行帧数会维持在80帧,布料开始频繁出现失控抽搐的问题。

测试下来发现因为Iteration Count会在帧数高于60帧时比设置时低,所以原本的参数就不对了。

考虑到我们最终版本希望不限帧数,无法限定玩家会以多少帧运行,通过overrideFps设置高帧率测试下来即使目前80帧到100帧布料不出问题,达到150帧甚至更高后还是有可能会出错。

如果通过p.ChaosCloth.Solver.DisableTimeDependentNumIterations的指令来保持Iteration Count始终以设置值进行模拟,我们又不能保证30帧运行时步数是否充足。

所以想问一下应该如何处理,才能保证在跨度很大的帧数范围内,布料的模拟始终能保持稳定。

[Attachment Removed]

您好,

布料的稳定性不止受迭代数影响, 更重要的也受delta time影响, 也就是 1.0/(帧率*子步). 帧率或子步比较高时, 往往不需要很高的迭代次数, 所以布料解算器默认有高帧率时降Iteration的表现.

布料模拟确实是在固定的delta time和迭代次数下更稳定, 你可以先试试开启Dynamic Substep Delta Time看有没有改善, 这样解算器会根据帧率调整子步, 尽量保持恒定的delta time.

高帧率下出错的具体原因可能需要拿到资产看看, 方便的话可以发一个简单可复现场景过来, 谢谢.

[Image Removed]

[Attachment Removed]