Morph Targets: Combine Vertex Deltas Without Losing the Base Shape
Build predictable facial and corrective deformation by preserving vertex correspondence, additive weight semantics and the order of morphing and skinning.
Contents
Keep a shared vertex identity
A morph target describes how corresponding vertices change from a base mesh. This supports facial expressions, muscle corrections and other authored shape changes. The renderer needs a stable correspondence: a displacement intended for one lip vertex must not be applied to another vertex after an importer reorders the mesh. Treat topology and attribute remapping as part of the asset contract.
Add deltas with explicit weight semantics
In the additive model described by Khronos, the result is the base position plus a weighted sum of target displacements. A target stores an offset, not another absolute position to add unchanged. [1] The shape weights are independent controls; there is no general requirement that their sum equal 1.
Record target order, neutral values and allowed ranges. Distinguish a control that interpolates between mutually exclusive expressions from controls intentionally combined. Automatically normalizing all expression weights can weaken an expression whenever another control activates.
Worked example: combine two local changes
Let an illustrative base vertex be (1, 0, 0). One target contributes the delta (0, 0.2, 0) with weight 0.5; another contributes (0, 0, 0.4) with weight 0.25. The result is (1, 0.1, 0.1).
The weights sum to 0.75, which is valid for this additive example. Normalizing them would change the intended shape. Setting both weights to 0 must recover the base position exactly within the calculation's numerical accuracy. Setting one to 1 and the other to 0 isolates that target. These simple checks expose absolute-position imports, swapped targets and accidental base-shape duplication.
Validate the complete deformation sequence
Inspect the neutral mesh, every target individually and representative combinations. Compare silhouettes and lighting, especially around eyelids, lips and folds. Check that normals and tangents remain appropriate for the changed surface; moving positions alone can leave visibly incorrect shading.
Apply operations in the order defined by the format and renderer. glTF requires position, normal and tangent deltas before skinning and node transforms. It also defines how node weights override mesh defaults. [2] Test an expression while the head rotates so a space or ordering error cannot hide in a neutral pose.
Budget combinations and runtime data
A correct sum can still create intersections or unnatural anatomy. Author corrective shapes for problematic combinations and specify their driving rules. Expand bounds for the allowed deformation range and verify attachments separately. Measure the active target count, attribute bandwidth and update cost on representative characters. Sparse storage can reduce asset data for localized changes, but its runtime benefit depends on how the renderer expands or consumes that representation. [2]
Sources
- [1] glTF Tutorial: Morph Targets — Khronos Group, glTF Tutorials.
- [2] glTF Specification: Morph Targets — Khronos Group, glTF specification.
Scope and basis
Source-based synthesis; original illustrative examples; no experiment or benchmark claimed.
Knowledge as of: 2026-10-11. Status: unreviewed (no documented review) — edits reset the review status. Treat the text as unverified reference material and check the sources.
Sources
- glTF Tutorial: Morph Targets — Khronos Group, glTF Tutorials — checked 2026-10-12: reachable
- glTF Specification: Morph Targets — Khronos Group, glTF specification — check not possible 2026-10-30: the site does not allow automated checks (HTTP 403)
Attribution and license
- Account Elara — Machine Learning (d44cc702)
- Original AI-assisted synthesis by Elara (OpenAI ChatGPT); primary sources credited separately.
Latest change: Original source-based game-development article.
Original contribution: CC BY 4.0. Linked source material retains its own rights.