physx-atlas 固定版本源码入口#
Learning home · PhysX contents
Course text is primarily Chinese, with English terminology and summaries. The original content is preserved.
阅读基线:da950a3537927784951853c66618036f332ca0ce。以下入口已核对官方 Git 树与文件内容身份;不是全仓审查或运行验收记录。
本阶段先理解引擎架构、建模、步进、控制、接触/求解、传感器/渲染、性能与扩展。独立实验、基准、训练和评分暂不开展,后续复用 DexLab。
源码文件 |
阅读目的 |
|---|---|
核对对象职责、数据布局、参数与版本约定 |
|
核对对象职责、数据布局、参数与版本约定 |
|
追踪构建、步进、数据更新与生命周期 |
|
追踪构建、步进、数据更新与生命周期 |
|
核对对象职责、数据布局、参数与版本约定 |
|
核对对象职责、数据布局、参数与版本约定 |
|
核对对象职责、数据布局、参数与版本约定 |
|
追踪构建、步进、数据更新与生命周期 |
|
核对对象职责、数据布局、参数与版本约定 |
|
核对对象职责、数据布局、参数与版本约定 |
|
理解官方最小使用顺序;本轮不执行 |
|
核对对象职责、数据布局、参数与版本约定 |
E1 增补阅读入口#
课程给出对应结论与行号;文件身份清单记录于 sources.json。头文件依赖的编译检查不等于这些文件的全部功能已审查。
源码文件 |
阅读目的 |
|---|---|
对象工厂、Shape 创建引用、资源生命周期 |
|
simulation/query/trigger 标志、局部位姿与质量更新边界 |
|
Actor 世界位姿、附着引用计数、动态形状限制 |
|
parent/child joint frame、关节类型与 motion |
|
低层 link 索引与非 cache 更新后的速度查询 |
|
cache mask,尤其 eALL 不包含的控制和外力字段 |
|
尺度参考值与单位转换的区别 |
|
初始化、字段布局、旋转平移与复合顺序 |
|
xyzw 构造顺序、单位轴与弧度 |
|
质量/惯量扩展接口与参数契约 |
|
对象依赖闭包、格式兼容与序列化阶段限制 |
|
triangle/convex descriptor 到 collision mesh 的 cooking 路径 |
|
半边长与合法性 |
|
三角网格几何与缩放引用 |
|
凸网格几何与缩放引用 |
|
计算质心/对角化惯量与点速度的实现 |
|
setGlobalPose/velocity 的运行阶段与 Direct GPU 限制 |
|
root global pose 返回链与注释方向核对 |
|
X 轴和 halfHeight 的原生定义 |
|
PxReal 的实际 float 定义 |
|
mesh scaling 与刚性 Transform 的区别 |
|
完成事件、fetch 前后处理与阶段切换 |
|
articulation 轴、motion、joint type 枚举 |
|
attachShape 的实际检查与 ShapeManager 调用 |
|
Shape 标志修改限制与 SDF 材料分支 |
|
实际附着与重复 Shape 检查 |
|
SDF triangle mesh 动态 Actor、cooking 与 CPU/GPU 示例分支(未运行) |
E2 增补阅读入口#
控制、机器人与任务接口按 setter、数据映射、驱动参数准备与冲量限幅追踪。下列固定文件已做身份核对与对应段落阅读,不代表整个文件或引擎已全面审查。
源码文件 |
阅读目的 |
|---|---|
D6 隐式 drive、angular model、相对目标与 forceLimit |
|
extension revolute velocity motor 与 drive flag |
|
extension joint/constraint 的公共接口边界 |
|
constraint drive force/impulse flag 与版本迁移标记 |
|
onContact/onAdvance 的阶段、写入与线程契约 |
|
physx/source/physx/src/NpArticulationJointReducedCoordinate.cpp |
drive target/velocity/params 的实际入口检查与转发 |
physx/source/simulationcontroller/src/ScArticulationJointCore.cpp |
关节轴到有效 DOF target 数组映射、dirty 更新 |
physx/source/lowleveldynamics/include/DyArticulationJointCore.h |
drive、target、joint frame 在低层 core 的存储 |
physx/source/lowleveldynamics/src/DyFeatherstoneArticulation.cpp |
构造 drive、上限缩放/限幅与 dense Jacobian 布局 |
physx/source/lowleveldynamics/src/DyFeatherstoneForwardDynamic.cpp |
articulation 动力学接口衔接;E3 补充 contact impulse response 与 TGS 步进边界 |
physx/source/lowleveldynamics/include/DyFeatherstoneArticulationUtils.h |
低层空间量/关节工具入口;E3 说明接触树响应,未逐函数推导全部工具 |
D6 参数保存、相对 joint frame 误差与 drive row |
|
四种 force mode 的逆质量/逆惯量和累加器分支 |
|
Body core 与 simulation 状态接口的衔接 |
|
physx/snippets/snippetarticulationrc/SnippetArticulation.cpp |
原生 robot link/joint frame、额外 D6 约束与目标提交(未运行) |
physx/source/lowleveldynamics/include/DyFeatherstoneArticulation.h |
articulation 与 CPU/GPU 共享驱动数据入口 |
physx/source/physx/src/NpArticulationJointReducedCoordinate.h |
scSetDrive/Target/Velocity 向 core 转发 |
mimic ratio/offset/compliance 的公开入口 |
|
force/acceleration 隐式 drive 公式、冲量计算与 envelope 限幅 |
E3 增补阅读入口#
接触、求解器与力观测沿 CPU 接触管线追踪。以下是已核对文件身份和所引用段落的入口,不代表所有几何组合、GPU 或完整文件均已审查。E0/E1 已登记的 DyDynamics.cpp、DyTGSDynamics.cpp、Scene/Body/Shape 头文件继续用于本章;E2 的 callback/D6 来源用于观测边界。
源码文件 |
阅读目的 |
|---|---|
摩擦/柔顺材料、combine mode 与原生 flags |
|
检测、求解、通知、CCD 与 filter 返回值 |
|
friction anchor stream 的有效性与字段布局 |
|
求解前修改 target、impulse、mass scale 与线程契约 |
|
physx/source/lowlevel/software/include/PxsMaterialCombiner.h |
实际 combine 顺序、刚柔混合 damping 与静/动摩擦钳制 |
外力/阻尼预积分、PGS motion velocity 和闭式 quaternion 更新 |
|
PGS 接触准备、冲量初始化、anchor 位置/切向冲量写回 |
|
unit response、恢复/偏置、force/acceleration compliant coefficients |
|
TGS 位置增量更新、成对摩擦、torsion 与读回 |
|
PGS constraint block 布局、摩擦钳制和冲量 writeback |
|
position/conclude/motion/velocity/writeback 的实际循环与最少一遍语义 |
|
contact/friction patch 相关性数据结构 |
|
physx/source/lowlevel/common/src/pipeline/PxcNpContactPrepShared.cpp |
材料组合进入接触流、friction stream 分配与输出 |
CPU PGS/TGS/GPU context 选择与 scene 分步入口 |
|
physx/source/lowleveldynamics/src/DySolverConstraintsShared.h |
法向累计冲量、投影、立即更新速度的 CPU 行迭代 |
physx/source/simulationcontroller/src/ScShapeInteraction.cpp |
discrete 与 CCD 接触通知,CCD friction stream 缺项 |
getForce 的阶段检查与 core 转发 |
|
physx/source/lowleveldynamics/src/DyArticulationContactPrep.cpp |
link 接触响应、CFM 与禁用/未使用 self-response 分支 |
普通 joint constraint force 的 core/simulation 转发边界 |
|
physx/source/lowlevel/software/src/PxsNphaseImplementationContext.cpp |
CPU PCM/普通 narrow phase 的配置分支 |
simulate/collide/advance、岛/solver/积分/CCD 任务依赖 |
E4 增补阅读入口#
传感、查询与调试显示给出固定行号和责任边界;继续复用 E1–E3 的 scene、rigid body、articulation 和 fetch 源码。来源身份收录 sources.json,不因接口或 snippet 存在而宣称运行验收。
源码文件 |
阅读目的 |
|---|---|
静/动态与 hardcoded mask、pre/post filter、TOUCH/BLOCK/ANY/NO_BLOCK |
|
hit callback/buffer、容量截断与 query cache 生命周期 |
|
ray/sweep/overlap 契约、flush、独立 query system 与异步更新 |
|
pruner 与 build/commit 更新模式、新对象可见性取舍 |
|
master/对象可视化开关、scaled impulse 和 deprecated force 别名 |
|
world 调试点/线/三角形与借用数组,非 framebuffer |
|
给定 geometry/pose 的查询,与 scene 发现/filter 责任分开 |
|
OVD 集成版本、writer 所有权/并发、采样与 stream/transport 生命周期 |
|
调试 instrumentation、连接与 cached 状态 |
|
调试 stream 开关、PVD viewer camera 与图元 |
|
scene 查询转发、读写检查、manual update/fetch 的配对 |
|
GLUT/OpenGL 显示、投影与 swap 的示例应用职责 |
|
官方示例相机的坐标约定;不当作原生传感器 |
|
位置/法向/UV 有效位、face index、重叠与 distance |
|
实际 mask/default hit type/ANY/cache 路径和输入检查 |
|
脏数据 flush、锁、shape 更新与 pruner commit |
|
physx/snippets/snippetquerysystemallqueries/SnippetQuerySystemAllQueries.cpp |
独立 query system 的示例组织;不执行 |
writer/stream 与 Physics 连接、窗口/非窗口应用分支;不执行 |
|
编译支持、writer 获取、startSampling 快照与 callback 顺序 |
|
默认 socket/file transport 工厂边界 |
|
接触图元、impulse 缩放与 sleeping pair 缺项 |
|
scene 持有的 render/query/acceleration 数据与内部辅助入口 |
|
原生 scene read/write RAII,不代替物理完成事件 |
|
清空并重建对象调试图元的实际阶段 |
E5 增补阅读入口#
批量、学习接口与数据继续复用 E1–E4 的 Scene/cache/filter/材料源码;下列固定文件身份均收录 sources.json。这里只证明来源与本章接口解释,不代表 GPU/序列化/学习宿主已经运行。
源码文件 |
阅读目的 |
|---|---|
Direct GPU 初始化/禁用 CPU readback、typed fields、scene-wide batch stride 和 CUDA events |
|
CUDA context 获取/释放、driver API 边界、旧 helper deprecation |
|
worker 数量、零 worker 语义与等待模式 |
|
对象集合、ID 与容器 release 的所有权 |
|
自定义对象类型 serializer 契约与对象图依赖入口 |
|
原生 extensions 初始化/关闭与库边界 |
|
SDK CPU task 的 submit/run/release 与 worker 计数契约 |
|
task run 的不可阻塞/线程安全要求与 continuation/reference 生命周期 |
|
SDK task 调度与 start/stopSimulation 管理入口 |
|
physx/snippets/snippetdirectgpuapiarticulation/SnippetDirectGPUAPIArticulation.cpp |
首个物理步初始化、low-level link index、GPU typed 读写;只阅读 |
physx/snippets/snippetrbdirectgpuapi/SnippetRBDirectGPUAPI.cpp |
原生刚体 GPU buffer/索引和数据交换应用示例;不执行 |
physx/snippets/snippetmultithreading/SnippetMultiThreading.cpp |
simulate/fetch 之间的 query worker 交叠与应用等待 |
collide/fetchCollision/advance/fetchResults 分阶段时序 |
|
physx/snippets/snippetserialization/SnippetSerialization.cpp |
共享资产/实例 collection、128-byte backing allocation 与最终释放 |
合法阶段/初始化/指针检查与 simulation controller 转发 |
|
physx/source/physxextensions/src/ExtDefaultCpuDispatcher.cpp |
零 worker 同步 run/release 与线程队列路径 |
physx/source/physxextensions/src/serialization/Binary/SnBinarySerialization.cpp |
binary header/version/platform 与对象数据序列化实现 |
physx/source/physxextensions/src/serialization/SnSerialization.cpp |
完整对象图和可序列化条件实现 |
broad-phase 聚合与自碰撞,区别于环境隔离 |
|
serialization registry 的类型注册/反注册与生命周期 |
|
实际 createCollection API、可共享对象与 releaseObjects 引用前提 |
|
替代旧 context helper 的分配/拷贝扩展、context 锁与错误处理 |
|
physx/source/physxextensions/src/serialization/Binary/SnBinaryDeserialization.cpp |
header/GUID/platform 检查与提供内存内的对象构造 |
补充职责来源:Isaac Lab 官方任务工作流。该可变页面于 2026-10-09 查阅,只用于说明 RL 环境类属于宿主;不是固定 SDK 身份、版本兼容或运行证据。
E6 增补阅读入口#
原生扩展与能力边界沿 constraint/geometry contracts、CPU DistanceJoint 全链、GPU 分派和代表性 FEM/PBD kernel 展开。下列新增来源与此前的 Scene/Constraint/CPU solver/Direct GPU 文件共同构成阅读地图;所有身份记录在 sources.json。GPU CUDA 实现公开可读,driver/toolchain、实际加载 binary 和宿主运行仍是独立证据。地图收录接口、深入追踪和补充入口,不表示逐行审计所有 GPU 内核。
源码文件 |
阅读目的 |
|---|---|
一维行/Jacobian/单位与 flags、solver-prep/connector 生命周期 |
|
外部 constraint owner 类型 ID 的保留范围 |
|
geometry 的 callback 裸引用与碰撞/查询/质量/PCM 契约 |
|
现成 cylinder/cone 回调、尺寸/轴/margin 接口 |
|
距离上下限、spring 开关和原生 setter |
|
配置/dirty、方向/死区/单边行、官方 shader table |
|
DistanceJointData 布局和 extension 类型关系 |
|
convex 支持映射、cylinder bounds 与 margin 分支质量属性 |
|
physx/source/geomutils/src/contact/GuContactCustomGeometry.cpp |
普通接触生成对 custom callback 的转发和法向翻转 |
physx/source/geomutils/src/pcm/GuPCMContactCustomGeometry.cpp |
PCM 失效/重用、geometry 交换与法向方向 |
GPU-only 体、collision/simulation 网格状态与 dirty/lifetime |
|
GPU-only 面、顶点状态与 collision update/substep 接口 |
|
非刚体基类的 shape、迭代和状态参数契约 |
|
co-rotational/neo-Hookean 材料模型枚举 |
|
surface 厚度、弯曲刚度和阻尼接口 |
|
位置/速度迭代、phase/offset 与 particle stream callbacks |
|
旧粒子头文件的兼容入口,不从名称推断额外实现 |
|
粒子材料参数与 particle-cloth/rigids 等 deprecated 注释 |
|
device 数组、active/capacity/flat index 和独立 buffer 生命周期 |
|
rigid/world/元素内 attachment 的坐标与固定拓扑 |
|
GPU PGS/TGS context 工厂与公开 GPU 实用对象入口 |
|
GPU 构建复用的公开 CPU/几何/foundation 对象依赖 |
|
GPU object targets 与平台链接/静态动态库组成 |
|
GPU library/driver 装载、导出符号与版本兼容检查 |
|
GPU articulation 约束批处理 kernel 入口,非完整后端证明 |
|
GPU TGS 批量约束/接触求解及 writeback 分支 |
|
deformable volume GPU 推进与顶点/碰撞状态路径 |
|
材料分支、ARAP/volume compliance 更新及 TGS multiplier 处理 |
|
physx/source/gpusimulationcontroller/src/CUDA/FEMClothConstraintPrep.cu |
surface–rigid 接触、重心数据与耦合 constraint prep |
physx/source/gpusimulationcontroller/src/CUDA/particlesystem.cu |
粒子积分/接触/密度工作数组与缩放约束值 |
GPU reduced-coordinate articulation 前向动力学实现入口 |
|
physx/source/gpusimulationcontroller/src/PxgSoftBodyCore.cpp |
GPU volume core 的 buffer/kernel 调度入口 |
Young/Poisson/friction/elasticity damping 的原生参数 |
|
particle callback 暴露的 GPU 数据结构 |
|
公开 volume 操作到 core、shape 和设备状态的实现 |
|
原生粒子参数/phase/callback 到 core 的实现 |
|
createConstraint、数据块、COM/origin 更新与 connector 关系 |
|
world attachment、力臂/force reporting 参考点及行帮助函数 |
|
CPU PGS shader 调用、预处理/惯性响应、系数/输出标志 |
|
共享 force/impulse 限幅转换、PGS/TGS spring 系数和速度 bias |
|
constraint writeback 冲量除以 Scene dt 的 getter 路径 |
|
physx/source/gpunarrowphase/src/PxgNphaseImplementationContext.cpp |
GPU pair 分派、custom/modify fallback 与受限 pair |
GPU shape/材料数据管理入口,不是宿主视觉材质 |
|
particle phase group/behavior 与 device buffer dirty flags |
|
GPU object targets 与平台链接/静态动态库组成 |
|
surface membrane/bending 推进、位置修正与速度更新 |
|
显式 bodies/contact/batch/solve/integrate 的低层扩展入口 |
|
CCT collide-and-slide 与内部 kinematic actor 的应用边界 |
|
原生 vehicle component/substep group 调度契约 |
|
原生 convex core 类型与 custom callback dispatch 的区别 |
|
physx/source/gpusimulationcontroller/src/CUDA/FEMClothUtil.cuh |
三角膜能量/面积约束、thickness 与 Lamé/compliance 尺度 |
actor 类别交互过滤表的补充阅读 |
|
physx/source/gpusimulationcontroller/src/CUDA/deformableUtils.cuh |
Lamé 参数计算与 GPU deformable 数值辅助函数 |
broad-phase actor type 过滤定义的补充阅读 |
|
公开 GPU PGS context 与 solver core/stream 初始化 |
|
公开 GPU TGS context 与对应 solver core 初始化 |
|
GPU PGS 刚体批量求解/写回 kernel |
|
密度 1 的质量属性约定、密度线性缩放与 custom 调用 |