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日

#1864 in 游戏开发

Download history 4/week @ 2024-03-08 43/week @ 2024-03-29 12/week @ 2024-04-05

每月 70次下载

BSD-3-Clause

2MB
44K SLoC

crates.io

crates.io (nphysics2d) crates.io (nphysics3d) Build status

用户指南 | 2D 文档 | 3D 文档 | 论坛


 如果您想捐赠以支持 nphysics 的发展,请点击以下按钮之一。

成为赞助商!      使用Liberapay捐赠

nphysics

nphysics 是一个用于游戏和动画的2D和3D物理引擎。它使用 ncollide 进行碰撞检测,并使用 nalgebra 进行向量/矩阵数学。2D和3D实现都使用相同的代码!

示例代码位于 examples2dexamples3d 目录中。交互式3D示例 在此 可用。由于这些演示基于WASM和WebGl 1.0,它们应在大多数现代浏览器上工作。请随时在官方 用户论坛 上寻求帮助和讨论功能。

为什么还需要另一个物理引擎?

现在市面上有各种各样的物理引擎。然而,用Rust编写物理引擎比编写绑定要有趣得多,并且具有一些优点。

  • 它表明Rust适用于软实时应用。− 它具有使用减少坐标方法的高效多体实现。还支持基于约束的关节。
  • 它表明没有必要为2D和3D编写两个单独的引擎:关于维度的通用性是可能的(除了解决每个维度的基础算术特殊化外)。
  • 在不太遥远的未来,C++ 将因为其丑陋而消亡。那时,人们将寻找一个物理引擎,而 nphysics 将在那里,自豪地展示其 Rusty 的性感。

功能

  • 静态、动态和运动学刚体。
  • 常见的凸几何体:盒子、球、凸多面体。
  • 由凸几何体构建的凹几何体:复合几何体、三角形网格、多段线。
  • 使用降阶坐标方法或基于约束的关节的多体。
  • 多体关节限制和电机。
  • 由于基于位置的非线性穿透校正和一次性接触流形生成,堆叠稳定。
  • 基于岛屿的休眠(物体在静止时关闭)。
  • 光线投射。
  • 基于扫掠球体的连续碰撞检测。
  • 球窝关节。
  • 固定关节。
  • 传感器。
  • 可变形体(又称软体)
  • 运动学体
  • 支持WASM

缺少什么?

nphysics 是一个非常年轻的库,需要学习很多东西才能成为一个成熟的人。许多缺失的功能都是因为 ncollide 缺失。来自 nphysics 自身的缺失功能包括

  • 更多的关节、关节限制、关节电机和可破坏关节。
  • 并行管道
  • 基于GPU的管道

依赖关系

编译物理引擎所需的库包括

编译示例所需的库包括

依赖关系

~23–33MB
~353K SLoC