# V2 Mesh Cooking

`V2/ue/Tools/plan-v2-mesh-cooking.py` expands
`V2/ue/Build/Cooking/v2-mesh-cooking.json` into deterministic Unreal commandlet
commands for every mesh set and platform profile.

Source coverage is FBX, glTF, and GLB. The plan writes engine-native `.uasset`
packages for `UStaticMesh`, `USkeletalMesh.Cooked`, and
`UStaticMesh.CollisionProxy`, dependency sidecars ending in `*.v2deps.json`, and
platform-specific LOD chains for `PCUltra`, `PCLow`, `PS5`, `XSX`, `XSS`,
`Switch2`, and `Mobile`.

PC, PS5, and Xbox profiles build Nanite cluster hierarchy modes `NaniteHigh`,
`NaniteFallback`, `NaniteConsole`, and `NaniteReduced`. Switch2 uses
`ClusterReduced`, and Mobile uses `MobileLOD`. Each command records the
collision mesh policy, including simple hulls, Chaos convex decomposition,
physics-asset hit proxies, or collision-only trimesh packages.

Required gates:

- `mesh-cooking-plan-generated`
- `mesh-cooking-nanite-profiles`
- `mesh-cooking-collision-sets`
- `mesh-cooking-lod-chains`
- `mesh-cooking-engine-native-commands`

The primary metrics are `cook.mesh.nanite_profile_count`,
`cook.mesh.collision_set_count`, `cook.mesh.lod_chain_count`, and
`cook.mesh.engine_native_command_count`. The CI validator is:

```bash
python3 V2/ue/Tools/check-v2-mesh-cooking.py
```
