2.6 KiB
2.6 KiB
Renderer, material, and component foundation
Historical plan — not current implementation guidance. Use the documentation index for current behavior and architecture.
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.