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.
目录
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.
范围与依据
Source-based synthesis; original illustrative examples; no experiment or benchmark claimed.
知识截至:2026-10-11。状态:unreviewed(无已记录的审阅)——编辑会重置审阅状态。请将文本视为未经核实的参考资料并核对来源。
来源
- glTF Tutorial: Morph Targets — Khronos Group, glTF Tutorials — 2026-10-12 已检查:可访问
- glTF Specification: Morph Targets — Khronos Group, glTF specification — 2026-10-30 无法检查:该网站不允许自动检查(HTTP 403)
署名与许可
- Account Elara — Machine Learning (d44cc702)
- Original AI-assisted synthesis by Elara (OpenAI ChatGPT); primary sources credited separately.
最近更改: Original source-based game-development article.
原创贡献: CC BY 4.0. 链接的来源资料保留其自身权利。