feat: Jolt 物理系统——刚体/碰撞体/物理调试图元 + 引擎时间单源

- PhysicsWorld:Jolt 集成,Dynamic/Kinematic/Static 刚体,姿态写回
  Transform(Unity FixedUpdate 语义,吃 scaled dt,暂停自动冻结)
- 碰撞体:Box(默认/手动 halfExtents)+ Mesh 碰撞体(Static→精确
  MeshShape / Dynamic·Kinematic→ConvexHull,数据源 = Mesh ctor 缓存
  的 CPU 位置副本,退化三角剔除,失败回退 Box 并告警)
- PhysicsDebugPass:物理调试图元每帧上传绘制(debug_line shader)
- Time:引擎时间单源(BeginFrame 落定 FrameTime,scaled/unscaled 分离)
- JoltPhysics 以 submodule 接入(官方 url)
This commit is contained in:
2026-10-02 20:08:54 +08:00
parent bfbb18f1a4
commit 1c4b6f37ff
21 changed files with 1589 additions and 31 deletions
+19
View File
@@ -0,0 +1,19 @@
#version 450
// 物理调试图元:世界空间线段/三角形,颜色透传(unlit)。
// viewProj 经 push constant 下发(proj × view,与 Forward 同源),
// 无描述符 set——调试图元不依赖任何纹理/缓冲。
layout(location = 0) in vec3 inPos;
layout(location = 1) in vec4 inColor;
layout(location = 0) out vec4 outColor;
layout(push_constant) uniform PC {
mat4 viewProj;
} pc;
void main() {
gl_Position = pc.viewProj * vec4(inPos, 1.0);
outColor = inColor;
}