Closed ID-Emmett closed 4 weeks ago
Awesome! We will do some tests later.
能帮忙总结一下哪些 BREAKINGCHANGES
吗?
比如 物理系统更新函数
算是直接影响旧版本用法的改变,除此之外,还有哪些API的变化?
把 _initedFunctions
的用法弃用了,统一用 _initializationPromise
来处理初始化 callback
https://github.com/Orillusion/orillusion/pull/440/commits/49b371cad9ee339040bd87f766d16045f7eb3dd9
能帮忙总结一下哪些
BREAKINGCHANGES
吗? 比如物理系统更新函数
算是直接影响旧版本用法的改变,除此之外,还有哪些API的变化?
除了 Physics.update()
函数的变更外,还有两处更改:
Rigidbody.update()
:出于性能考虑,现在仅对激活状态的刚体进行变换同步,如果刚体为非激活状态且未开启新增的 enablePhysicsTransformSync
功能(默认关闭),那么修改3D对象的位置、旋转、缩放后,将不会更新物理刚体,导致图形与物理变换不同步。在旧版本中对于添加 Rigidbody Component
的对象是无法手动修改其位置和旋转的。
Rigidbody.btRigidbodyInited
:btRigidbodyInited
属性已更名为 btBodyInited
。
关于 Physics.update()
的调整,这对物理模拟有较大影响。为确保准确性,timeStep
已正确调整为秒单位(Time.delta / 1000)。这一更改确保了物理模拟的速率不会因帧率变化而改变,但也可能导致物理模拟的更新频率降低,尤其在大尺度物体的情况下,物体每帧的位移可能变小,从而导致视觉上看起来速度变慢。
建议提供相关说明和指导,帮助开发者在模拟中考虑物体尺寸对视觉效果的影响。可以通过调整物体的尺寸、初速度、力或加速度,或调整摄像机视角来优化运动表现。
概要
此PR重构了Orillusion的物理插件,加入了大量新功能,以提供更强大和全面的物理系统。
主要更改
刚体组件:
软体组件:
约束组件:
btGeneric6DofSpringConstraint
,btConeTwistConstraint
和btHingeConstraint
。调试物理渲染:
工具类:
碰撞事件:
ContactProcessedCallback
监听碰撞事件。只需为刚体注册碰撞回调,即可在碰撞时触发。且对全局碰撞事件进行了高效过滤优化。碰撞形状:
碰撞组件:
ColliderComponent
,但已作兼容。物理系统更新函数:
示例:
影响
这些更改较为广泛,可能会影响使用先前版本物理插件的现有项目。建议在项目中进行全面测试,并根据需要调整配置。
测试
所有新功能和修改均已测试,但可能并不全面。
向后兼容性
尽管已经尽力保持向后兼容性,但某些更改可能需要在现有项目中进行调整。