PhysX 3.4更新
PhysX 3.4是一个重大更新,对多个方面带来了明显的改进。
首先,PhysX 3.4解决了大量Bug。例如:PhysX 3.4显著改进凸面与凸面间的碰撞检测和反馈,因此当启用PCM碰撞检测时,不会出现任何奇怪的碰撞情况。针对窄长型三角的物理查询也得到了改进。PhysX 3.4还提高了地形接触计算的精度。
其次,新版物理引擎能使物理作业的线程更加饱和。我们重写了粗测阶段,碰撞检测和解算器,从而使它们尽可能多地分解为小型线程作业。因此,模拟一帧画面所需的时间将比以前更短。
最后,物理查询模块比以前快二倍的速度。
PhysX 3.4加入了大量新内容,我们将为大家介绍Unity 2018.3所支持的相关新功能。
多场景物理
Unity过去只有一个物理场景,该场景会填充来自所有Unity场景的物体和碰撞体。这样做会对很多情况产生限制,所以新版本将允许开发者创建多个物理场景。
你可以指定Unity场景使用默认物理场景或本地场景。额外场景和默认场景的功能相似,只不过所有常用Physics.* API会忽略额外场景,因为所有场景都是完全独立的。
使用额外场景有很多种方法,你可以使用PhysicsScene.Simulate在任何频率下对场景进行模拟,你也可以创建用于预测轨迹的隐形物理场景。此次改进应用于3D物理和2D物理。
更多批量查询
批量物理查询是一种从主线程外运行物理查询的方法。我们需要使用批量查询API,因为线程无法执行来自其它线程的API。
在Unity 2018.1中,我们发布了RaycastCommand.ScheduleBatch,它有助于计算主线程的光线投射。
在Unity 2018.3中,我们将其扩展,添加了其它单结果查询。例如:SphereCast、CapsuleCast和BoxCast。我们正在研究阻碍我们公开多结果查询的技术限制,以便在未来版本中发布该功能。
强化的结果输出
当所有输入内容一致时,PhysX能产生相同结果。然而对于物理引擎而言,很多信息都属于“输入内容”,物理场景本身就是一项输入内容。
在Unity 2018.3前,Unity无法销毁隐含的物理场景,开发者只能销毁场景中的所有对象,但这样做是不够的。加入多场景物理功能后,我们可以轻松解决该问题。
另一个常见问题是,添加距离较远且不会与其它对象交互的新物体后,也会改变模拟结果。
原因在于Unity中PhysX内部的对象分组方式。通过启用物理设置中的特别选项可以解决该问题。该功能目前仍对性能有影响,但它不会明显减慢项目的运行速度。
更多unity2018的功能介绍请到paws3d学习中心查找。