You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Parent epic: #517
Subsumes: #371 (the existing skeletal-VAT issue — design preserved, broadened into a family)
Goal
A single VAT exporter family that covers the four real-world VAT variants. One CLI/MCP surface (qtmesh vat), one inspector panel, one set of encoders and sidecar conventions — pluggable samplers per variant.
Rigid-body VAT — one quaternion + pivot per "chunk" (e.g. each submesh or a custom chunk grouping). Useful for destruction (Houdini RBD), animated mechanical pieces. Each chunk occupies one texel per frame in a tiny texture; the runtime shader applies quat * (vertex - pivot) + pivot.
Mesh-anim VAT — bakes the vertex-animation tracks from Slice B (Alembic / VAT_POSE) into VAT textures. The sampler reads from VertexAnimationManager instead of entity->_getSkelAnimVertexData().
Morph VAT — bakes morph-weight-driven mesh deformation from Slice A. Sampler resolves morph weights → vertex deltas per frame.
All four modes produce correct textures + sidecars; baked playback in a test Godot scene visually matches live playback in QtMeshEditor at RGBA16 or better.
Parent epic: #517
Subsumes: #371 (the existing skeletal-VAT issue — design preserved, broadened into a family)
Goal
A single VAT exporter family that covers the four real-world VAT variants. One CLI/MCP surface (
qtmesh vat), one inspector panel, one set of encoders and sidecar conventions — pluggable samplers per variant.Scope
VATBakeras planned in Exporter: Vertex Animation Texture (VAT) — bake skeletal anim into RGB textures #371 becomes the shared scaffold (encoders RGBA8 / RGBA16 / EXR, JSON sidecar, target variants agnostic/Unity/Unreal/Godot). The four samplers plug into the same baker:entity->_getSkelAnimVertexData(). Slice 1–4 of Exporter: Vertex Animation Texture (VAT) — bake skeletal anim into RGB textures #371's plan carry over verbatim.quat * (vertex - pivot) + pivot.VAT_POSE) into VAT textures. The sampler reads fromVertexAnimationManagerinstead ofentity->_getSkelAnimVertexData().Shared: encoders, JSON sidecar shape, target variants (agnostic/Unity/Unreal/Godot), CLI/MCP surfaces, QML "Bake VAT" panel, async progress, Sentry breadcrumbs.
CLI:
qtmesh vat model.fbx --mode skeletal|rigid|mesh-anim|morph --anim Walk --fps 30 --encoding rgba8|rgba16|exr --target agnostic|unity|unreal|godot -o out/.MCP:
bake_vattool with amodeparameter.Sidecar JSON: extends Exporter: Vertex Animation Texture (VAT) — bake skeletal anim into RGB textures #371's schema with a
modefield and mode-specific extras (chunk count + pivots for rigid; track ID for mesh-anim; target names for morph).Acceptance Criteria
file.exportwithvat_modetag.Effort
Total: ~25 days spread across multiple PRs. Each mode is its own PR.
Note
Closes #371 when the skeletal sub-slices land. The remaining mode samplers can each be tracked as a sub-issue of this slice if convenient.