Unity Physics和Havok Physics打造基于DOTS的项目

借助Unity的C#面向数据的技术堆栈(DOTS),打造丰富的交互式动态世界。

两个物理系统,一种数据协议

Physics解决方案包含两部分内容:Unity Physics和Havok Physics。二者都以DOTS框架为基础,也就是说它们使用了相同的数据协议。

这支持您在物理系统之间无缝转换项目,无需重新构建内容或游戏代码。

无论使用的是Unity Physics或Havok Physics,还是同时使用了这二者,统一的数据协议都允许您只用创建一次,便可利用任何支持DOTS的系统进行模拟。

幕后故事:Unity与Havok的合作关系

我们与Havok合作开发了基于DOTS技术的全新物理引擎。

听听Shawn McClelland(Unity产品经理)和Joel Van Eenwyk(Havok现场应用工程师)介绍我们如何在DOTS框架之上合作构建系统。这些系统让您能够创建物理模拟,提供符合现代网络需求的卓越性能。

Unity Physics和Havok Physics

Unity Physics和Havok Physics均构建于面向数据的技术堆栈(DOTS)框架之上。您可以将项目从一个解决方案转换到另一个解决方案;它们可以同时运行。它们与数据兼容,可让您使用Unity强大的工具和工作流程。

Unity Physics

快捷、轻巧、无状态、可定制:这些便是我们新型Unity Physics解决方案的特色优势。

其构建于Unity C# DOTS框架上,可直接联网使用,可完全自定义,并且支持开箱即用。无论是在制作下一个热门移动游戏,还是构建新的玩家多人联网主机游戏体验,Unity Physics都可以利用Burst编译器和作业系统在各种硬件之间进行扩展。

Unity Physics目前为预览版本,可通过Package Manager获得,可兼容Unity 2019.1及更高版本。

Havok Physics

Havok Physics
Havok Physics represents a high-end solution for customers who need to produce complex physics simulations. It’s backed by the industry-leading Havok Physics engine, which powers over half the top titles of this console generation. It is written using the same C# DOTS framework as Unity Physics, but includes the features, performance, stability, and functionality of the closed source, proprietary Havok Physics engine, written in native C++.

Check out the documentation on how to access Havok Physics.

Performance 
Havok Physics is heavily optimized for typical game use cases. Core algorithms have been refined over many years, and various automatic caching strategies (including enabling sleeping for inactive objects) mean that CPU resources are spent only where needed. 

See Havok Physics Unity integration : Performance - YouTube 

Behavior
Havok Physics is a robust physics engine designed to handle the performance demands of the most graphically intense games, which often include intricate scenes with lots of physical interaction. By working with partners across the industry for over twenty years, Havok has seen, solved, and continues to iterate on many of the hardest problems facing physics simulations. This means stable stacking of physics bodies, minimal artifacts where there are fast-moving bodies, and generally more controlled behavior, especially when working with non-optimized collision geometry. 

See Stacking Stability - YouTube and Mesh Welding - YouTube

FAQ

“确定性”是什么意思?

确定性是指,当给出相同的一组输入信息时,可在物理模拟中获得相同的结果。Unity Physics与Havok Physics均可提供确定性结果。不过,由于不同的CPU架构(x86、ARM等)会在其数学计算中产生微小差异,因此模拟的确定性结果可能因硬件而异。

由于Burst将在今年晚些时候解决跨架构的确定性问题,Unity Physics也会自动受益于此功能,这表示可从任何设备上获得相同的模拟。

注意:对于单个架构的确定性,Unity Physics会尽快对Burst进行更新。

“无状态物理”是什么意思?

包括Havok在内的大多数物理引擎都通过智能优化来实现出众的性能和稳定性,例如缓存部分世界状态以绕过不同的计算或使其保持稳定。相反,无状态物理通过强力优化实现性能。正因为如此,并且由于Burst的未来版本能够跨多个架构执行,因此其可以使多个不同的联网场景受益。另一方面,Havok能够在某些场景中实现更高的性能和稳定性。

无状态物理如何影响网络游戏?

由于无状态物理能够在Burst的未来版本中跨多个CPU架构执行具备决定性的结果,其易于使用且可随时用于各种网络设置,包括客户端预测(例如FPS)、锁步客户端模拟(例如RTS)以及GGPO/回滚(例如格斗游戏)。

在我的游戏中使用Havok Physics有什么好处?

由于Havok Physics会缓存不同状态信息来执行智能优化,因此它可以在大型游戏或使用复杂物理系统的游戏中实现卓越性能。Havok Physics还可以在处理穿插物体和堆叠物体时提供更高的稳定性。由于高级摩擦模型需要缓存,行为也将得到改善。

我可以追溯性地将Havok Physics应用到我现有的游戏中吗?如果可以,操作难度如何呢?

Havok Physics和Unity Physics都使用了Unity Editor中的相同数据模型。您可以单一方式创作内容,然后根据游戏的具体需求或游戏世界的子集将内容加入任一物理后端或这两个物理后端。

新系统是否会破坏任何内容或使当前或未来项目变得复杂?

不会。Unity Physics与Havok Physics都是基于DOTS的可选软件包。不会中断任何现有内容,但如果要迁移到其中一个新的后端,则可能需要重新调整现有内容。

我们使用 Cookie 来确保为您提供网站的最佳体验。有关更多信息,请访问我们的 Cookie 政策页面

明白了