剪切系统是基于平面裁剪(一项经典的CSG操作)的,而不是一个通用的布尔CSG库(如两个任意网格之间的并集、差集和交集)。
以下是核心流程:
- 将当前的骨骼网格烘焙(bakeSkinnedModelGeometry)
• 使用敌人的live AnimationMixer姿势,将骨骼网格转换为一个静态的世界空间BufferGeometry。
- 平面裁剪几何体(clipGeometryByPlane)
• 将烘焙的网格裁剪到一个或多个平面上。
• 分割三角形,生成新的切割面帽子,并保留材质组(原表面与切割内部)。
- 将结果转换为物理对象
• 每个碎片变成一个动态的Rapier体(具有盒子、凸包或复合碰撞器)。
• 对于高级场景,它还可以Spawn裁剪的骨骼网格,它们继续在物理模拟中动画。
评论 (0)