Add dedicated skinned rendering, pose restoration, shared Material and Material Instance slots, registry-driven components, Surface/Solari integration, transactional schema upgrades, navigation authoring, documentation, and evaluation evidence.
2.5 KiB
2.5 KiB
Renderer, material, and component foundation
Goal
Separate static and skinned renderer ownership, restore deterministic skinned edit poses, add shared material/material-instance slots, and make authoring components registry-driven and composable.
Component foundation milestone
- Give authoring components immutable IDs distinct from Rust type paths.
- Split persisted active state from inspector ordering with legacy-state migration.
- Route presence, persistence, add/remove/reset/copy/paste, and component history through Bevy reflection and atomic transactions.
- Treat
ActorKindas a derived compatibility/display hint; validate component data and explicit requirements/conflicts. - Provide one statically linked extension registration helper and reflection round-trip fixture.
- Verify registry integrity, transaction undo/redo, scene save inclusion, composition, and legacy enable-state preservation.
Related renderer/material milestone
- Keep
StaticMeshRendererandSkinnedMeshRendereras separate authoring and hydration paths. - Give both renderer types stable imported-source/explicit Material slots and preserve orphaned assignments by ID across source changes.
- Add versioned Material and direct-base Material Instance assets, sparse editor overrides, shared handle live refresh, and runtime-only property blocks.
- Capture and restore imported Transform/MorphWeights baselines; sample only the explicitly chosen default edit clip and never reload a rig for a material-only change.
- Compose one validated Surface evaluator into raster and Solari, including normal/emissive/unlit fields and exact cutout candidate acceptance. Safely omit skinned/morph geometry from Solari until instance-owned deformed vertices and dynamic BLAS updates exist.
- Upgrade scenes/materials explicitly to schema v4 with dry-run, staged writes, backup, rollback, stable slot normalization, and active-state separation.
Acceptance
- Shared, scene, game, game-hot, editor, Surface, and maintained Solari-fork tests pass.
cargo --locked validate-levelsreports zero blocking findings.- A second project-upgrade dry run reports no changes after apply.
- Editor evidence shows the stable component cards, static/skinned material slots, Material Instance workflow, deterministic animated actor pose, and Surface/Solari diagnostics.
- Gitea implementation issue and related roadmap issues link the documentation and screenshot evidence without claiming unsupported dynamic deformed BLAS behavior.