Box3D:一款开源 3D 物理引擎

查看原文 HN 讨论

文章摘要

Box3D 是知名 2D 物理引擎 Box2D 的作者 Erin Catto 推出的全新开源 3D 物理引擎,完全用 C17 编写,已在 GitHub 上发布。它继承了 Box2D 经过验证的设计理念,功能相当完整:支持三角网格(triangle mesh)与高度场(height-field)碰撞、烘焙式复合碰撞(baked compound collision)、连续碰撞检测(continuous collision detection)、可选调度的多线程、宽 SIMD 接触求解器(wide SIMD contact solver)、用双精度浮点表示位置以支持大世界,以及跨平台确定性(determinism)与录制/回放功能。

Box3D 的诞生源于实际需求。Catto 在 Kintsugiyama 工作室开发一款生存类游戏《The Legend of California》,但 Unreal Engine 自带的物理系统 Chaos 存在诸多局限——缺少陀螺力矩(gyroscopic torque)支持、网格碰撞处理不佳。与其和这些约束搏斗,他决定自研方案:最初 fork 了 Valve 的 Rubikon-Lite,随后融入 Box2D 的各项优化,逐步演化为 Box3D。

除了满足游戏开发的具体需要,Catto 也希望通过开源工作把自己积累的物理引擎知识在不同工作之间传承下来。目前 Box3D 已被多个项目采用,包括 Facepunch Studios 的 s&box 平台和若干独立多人游戏。

HN 评论精华

讨论主要围绕 Box3D 在现有物理引擎生态中的定位展开。