JoltPhysics – 一款专为现代游戏和 VR 应用设计的高度并行刚体物理引擎

JoltPhysics 是一款专为现代游戏和 VR 应用设计的、高度并行的刚体物理引擎。它通过巧妙地将物理模拟任务分发到多个 CPU 内核,并优化数据访问模式,实现了高性能、低延迟的物理模拟。引擎还支持确定性模拟,使得网络同步和回放变得更加容易。其灵活的架构允许开发者自定义物理行为,以满足各种游戏需求。

file

特性

刚体模拟

  • 使用连续碰撞检测模拟各种形状的刚体:
    • 球体
    • 盒子
    • 胶囊
    • 锥形胶囊
    • 圆柱体
    • 锥形圆柱体
    • 凸包
    • 平面
    • 复合体
    • 网格(三角形)
    • 地形(高度场)

约束模拟

  • 在物体之间模拟约束:
    • 固定
    • 距离(包括弹簧)
    • 铰链
    • 滑块(也称为棱柱形)
    • 圆锥
    • 齿轮齿条
    • 齿轮
    • 滑轮
    • 平滑样条路径
    • 摆动-扭曲(用于人形肩膀)
    • 6 DOF
    • 驱动约束的电机

碰撞检测

  • 投射光线。
  • 测试形状与形状。
  • 投射形状与另一个形状。
  • 广相仅测试以快速确定哪些对象可能相交。
  • 传感器(触发体积)。

动画布娃娃

  • 硬键控(仅运动学刚体)。
  • 软键控(在动态刚体上设置速度)。
  • 驱动约束电机到动画姿势。
  • 将高细节(动画)骨骼映射到低细节(布娃娃)骨骼,反之亦然。

游戏角色模拟(胶囊)

  • 刚体角色。在物理模拟期间移动。最便宜的选项和角色与动态体之间最准确的碰撞响应。
  • 虚拟角色。在模拟中没有刚体,但使用碰撞检查来模拟一个。在物理更新之外更新,以获得更多控制。与动态体的交互不太准确。

车辆

  • 轮式车辆。
  • 有履带的车辆。
  • 摩托车。

软体模拟(例如软球或一块布)

  • 边缘约束。
  • 二面角弯曲约束。
  • 四面体体积约束。
  • 长距离连接约束(也称为系绳)。
  • 限制模拟以保持在一定范围内的一个蒙皮顶点。
  • 内部压力。
  • 与模拟刚体的碰撞。
  • 对软体的碰撞测试。
  • 水浮力计算。
  • 可选的双精度模式,允许大型模拟。

安装

Windows

  • 下载 Visual Studio 2022
  • 下载 CMake 3.20+
  • 运行 cmake_vs2022_cl.bat
  • 打开生成的项目文件 VS2022_CL\JoltPhysics.sln
  • 编译并运行 'Samples' 或 'UnitTests'

Linux

# 安装 clang
apt-get install clang
# 安装 cmake 
apt-get install cmake

运行 ./cmake_linux_clang_gcc.sh

# 转到 Linux_Debug 文件夹
cd Linux_Debug

运行 make -j$(nproc) && ./UnitTests

官方链接

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注