理解PxPhysics,先不要从接口列表开始。
我们先想象一个游戏场景:
玩家把一个箱子推下楼梯,箱子与台阶碰撞,翻滚后停在地面上。
这件事需要哪些系统?
- 有地方创建箱子、材质和碰撞形状;
- 有一个物理世界容纳箱子和楼梯;
- 有碰撞检测找到接触;
- 有求解器计算箱子如何运动。
在 PhysX 中,它们不是同一个对象负责的:
PxFoundation:提供内存、错误报告等基础环境 PxPhysics:创建和管理 SDK 层的物理对象与资源 PxScene:组织一个物理世界并推进模拟 碰撞与求解模块:执行具体计算PxPhysics是物理 SDK 的核心入口,但不是每帧亲自计算所有碰撞的“总求解器”。
本文以 PhysX 4.x/5.x 常见接口与架构为基础;具体内部类名和功能支持可能随版本变化。
一、先用一个“拍电影”的案例理解
假设你经营一家电影公司,要拍摄箱子从楼梯滚下来的镜头。
你需要:
1. 后勤系统:PxFoundation
负责:
- 经费和物资从哪里来;
- 出问题向谁报告。