44 个版本 (23 个破坏性版本)
0.24.0 | 2021 年 8 月 8 日 |
---|---|
0.23.0 | 2021 年 7 月 11 日 |
0.22.0 | 2021 年 6 月 2 日 |
0.20.0 | 2021 年 3 月 1 日 |
0.1.2 | 2016 年 3 月 31 日 |
#1015 在 科学 中
682 每月下载量
用于 6 个包(其中 4 个直接使用)
1MB
20K SLoC
⚠️**此包现在处于被动维护状态。它已被 Rapier 项目所取代。**⚠️
nphysics
nphysics 是一个用于游戏和动画的二维和三维物理引擎。它使用 ncollide 进行碰撞检测,并使用 nalgebra 进行向量/矩阵数学。二维和三维实现都使用相同的代码!
示例代码位于 examples2d
和 examples3d
目录中。交互式 3D 示例可以在 此处 查看。由于这些演示基于 WASM 和 WebGl 1.0,它们应该能在大多数现代浏览器上运行。您可以在官方的 用户论坛 上寻求帮助并讨论功能。
为什么还需要另一个物理引擎?
目前有很多物理引擎。然而,用 Rust 编写物理引擎比编写绑定要有趣得多,并且具有以下优点
- 它表明 Rust 适合软实时应用。 − 它使用降维方法高效地实现了多体。还支持基于约束的关节。
- 它表明不需要为 2D 和 3D 编写两个单独的引擎:关于维度的通用性是可能的(对每个维度进行低级算术特化的除外)。
- 在不久的将来,C++ 将因丑陋而消亡。那时,人们将寻找物理引擎,而 nphysics 将在那里,自豪地展示其 Rusty 的魅力。
功能
- 静态、动态和运动学刚体。
- 常见的凸几何体:盒子、球体、凸多面体。
- 由凸元构成的凹几何形状:复合几何形状、三角形网格、多段线。
- 使用降阶坐标法或基于约束的关节的多体。
- 多体关节限制和电机。
- 由于基于位置的非线性穿透校正和一次性接触流形生成,实现稳定堆叠。
- 基于岛屿的休眠(当对象处于静止状态时,对象被禁用)。
- 光线投射。
- 基于扫掠球体的连续碰撞检测。
- 球窝关节。
- 固定关节。
- 传感器。
- 可变形体(又称软体)。
- 运动学体。
- WASM支持。
缺少什么?
nphysics是一个非常年轻的库,需要学习很多东西才能成长为一个成熟的库。许多缺失的功能是因为在ncollide中缺少功能。从本身缺少的功能包括
- 更多的关节、关节限制、关节电机和可断裂关节。
- 并行管道。
- 基于GPU的管道。
依赖关系。
编译物理引擎所需的库包括
编译示例所需的库包括
- kiss3d:3D图形引擎。
依赖关系。
~6.5–9MB
~171K SLoC