9 个重大版本更新
0.10.0 | 2020年6月7日 |
---|---|
0.8.0 | 2020年3月2日 |
0.7.0 | 2019年10月28日 |
0.5.0 | 2019年3月31日 |
0.1.0 | 2018年7月28日 |
#391 在 科学
97 每月下载量
2MB
44K SLoC
如果您想为 nphysics 的发展捐款,请点击以下按钮之一。
nphysics
nphysics 是一个用于游戏和动画的 2D 和 3D 物理引擎。它使用 ncollide 进行碰撞检测,并使用 nalgebra 进行向量/矩阵运算。2D 和 3D 实现都使用相同的代码!
示例文件位于 examples2d
和 examples3d
目录中。交互式 3D 示例可在 此处 获得。由于这些演示基于 WASM 和 WebGl 1.0,因此它们应该在大多数现代浏览器上运行。欢迎在官方 用户论坛 上寻求帮助并讨论功能。
为什么还需要另一个物理引擎?
市面上有很多物理引擎。然而,用 Rust 编写物理引擎比编写绑定库更有趣,并且具有一些优点。
- 它表明 Rust 适合软实时应用。 − 它使用降阶坐标方法高效实现多体。还支持基于约束的关节。
- 它表明没有必要为 2D 和 3D 编写两个独立的引擎:对维度的泛化是可能的(对每个维度进行低级算术特殊化的限制除外)。
- 在不远的将来,C++ 将因其丑陋而死亡。那时,人们会寻找物理引擎,而 nphysics 将在那里,自豪地展示其 Rusty 的魅力。
特性
- 静态、动态和运动学刚体。
- 常见的凸多面体:盒、球、凸多面体。
- 由凸多面体构建的凹几何形状:复合几何形状、三角形网格、多边形。
- 使用降阶坐标方法或基于约束的关节的多体。
- 多体关节限制和电机。
- 由于基于位置的非线性穿透校正和一次性接触流形生成,堆叠稳定。
- 基于岛屿的睡眠(当物体处于静止状态时禁用)。
- 光线投射。
- 基于扫掠球体的连续碰撞检测。
- 球窝关节。
- 固定关节。
- 传感器。
- 可变形体(也称为软体)
- 运动学体
- WASM 支持
缺少什么?
nphysics 是一个非常年轻的库,需要学习很多东西才能成长为一个成熟库。许多缺失的功能是因为 ncollide 缺失。来自 nphysics 自身的缺失功能包括
- 更多关节、关节限制、关节电机和可断开关节。
- 并行管道
- 基于 GPU 的管道
依赖项
编译物理引擎所需的库包括
编译示例所需的库包括
- kiss3d:3D 图形引擎。
依赖项
~23–34MB
~370K SLoC