feat: add skeletal animation via self-contained skeletons and name-based clip binding (ADR-0064) #123
No reviewers
Labels
No labels
atmosphere
clouds
debug
enhancement
foundation
high-priority
integration
low-priority
medium-priority
optimization
pbr
weather
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
akadmin/NemesisEngine!123
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/skeletal-animation"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
mixamorig2:Hips->Hips) and an optional per-instancejoint_remaptable, so animations from one Mixamo-rigged character can drive anotherSkinnedMeshVertexformat,skinned_vertex.glsl/skinned_shadow_vertex.glslpairing with the unmodified fragment shaders, and a new descriptor set holding aMAX_JOINTS = 128joint-matrix palette UBO — every static draw call, pipeline, and shader is completely unaffectedAnimationSubsystemsamples clips and writes joint poses every render frame, ticking first in the subsystem registrySkeleton/SkinnedMeshget the same asset-backed rehydration treatment asMesh(ADR-0021);AnimationPlayer(clip playback state) always serializes directly;SCENE_FORMAT_VERSIONstays at 3 (purely additive fields)AnimationPlayer(clip source/index, play/loop/speed, read-only time, add/remove-rowjoint_remapeditor)Test plan
cargo test --lib— 468/468 passing (headless coverage of glTF skin parsing, joint-hierarchy resolution, SQT/SLERP/crossfade sampling, palette computation and multiplication order, name-based binding + remap, serialization round-trips)cargo build --all-targets— compiles cleanly, including SPIR-V generation for the two new shaderscargo clippy --all-targets -- -D warnings— cleancargo fmt -- --check— clean🤖 Generated with Claude Code
https://claude.ai/code/session_01VgUh6Fb47zBTgiUnqV32NB
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.