Morph targets : combiner des deltas de sommets sans perdre la forme de base
Traduction automatique de l'original (English, révision 1) ; l'original fait foi. Original
Pour obtenir des déformations faciales et correctives prévisibles, il faut conserver la correspondance des sommets, appliquer des poids de manière additive et respecter l'ordre entre morphing et skinning.
Sommaire
- Conserver une identité de sommet commune
- Additionner les deltas avec une sémantique de poids explicite
- Exemple détaillé : combiner deux modifications locales
- Valider toute la séquence de déformation
- Budgéter les combinaisons et les données d'exécution
- Sources
- Portée et fondement
- Sources
- Attribution et licence
- Accès machine
Conserver une identité de sommet commune
Un morph target décrit comment des sommets correspondants évoluent par rapport à un maillage de base. Il sert aux expressions faciales, aux corrections musculaires et à d'autres modifications de forme créées à la main. Le moteur de rendu a besoin d'une correspondance stable : un déplacement prévu pour un sommet de la lèvre ne doit pas être appliqué à un autre sommet après qu'un importeur a réordonné le maillage. Considérez la topologie et le remappage des attributs comme faisant partie du contrat de l'asset.
Additionner les deltas avec une sémantique de poids explicite
Dans le modèle additif décrit par Khronos, le résultat est la position de base plus une somme pondérée des déplacements des targets. Un target stocke un décalage, et non une autre position absolue à ajouter telle quelle. [1] Les poids de forme sont des contrôles indépendants ; rien n'impose en général que leur somme soit égale à 1.
Documentez l'ordre des targets, leurs valeurs neutres et leurs plages autorisées. Distinguez un contrôle qui interpole entre des expressions mutuellement exclusives de contrôles volontairement combinés. Normaliser automatiquement tous les poids d'expression peut atténuer une expression dès qu'un autre contrôle s'active.
Exemple détaillé : combiner deux modifications locales
Prenons, à titre d'illustration, un sommet de base à (1, 0, 0). Un target apporte le delta (0, 0.2, 0) avec un poids de 0.5 ; un autre apporte (0, 0, 0.4) avec un poids de 0.25. Le résultat est (1, 0.1, 0.1).
La somme des poids vaut 0.75, ce qui est valide dans cet exemple additif. Les normaliser changerait la forme voulue. Avec les deux poids à 0, on doit retrouver exactement la position de base, à la précision numérique du calcul près. Avec l'un à 1 et l'autre à 0, on isole le target concerné. Ces vérifications simples révèlent les imports en position absolue, les targets permutés et les duplications accidentelles de la forme de base.
Valider toute la séquence de déformation
Inspectez le maillage neutre, chaque target pris isolément, ainsi que des combinaisons représentatives. Comparez les silhouettes et l'éclairage, en particulier autour des paupières, des lèvres et des plis. Vérifiez que les normales et les tangentes restent adaptées à la surface modifiée : ne déplacer que les positions peut laisser un ombrage visiblement incorrect.
Appliquez les opérations dans l'ordre défini par le format et par le moteur de rendu. glTF exige que les deltas de position, de normale et de tangente soient appliqués avant le skinning et les transformations de nœud. Il définit aussi comment les poids d'un nœud remplacent les poids par défaut du maillage. [2] Testez une expression pendant que la tête tourne, afin qu'une erreur d'espace ou d'ordre ne puisse pas se cacher dans une pose neutre.
Budgéter les combinaisons et les données d'exécution
Une somme correcte peut tout de même produire des intersections ou une anatomie peu naturelle. Créez des formes correctives pour les combinaisons problématiques et précisez les règles qui les pilotent. Élargissez les volumes englobants pour couvrir la plage de déformation autorisée et vérifiez séparément les éléments attachés. Mesurez le nombre de targets actifs, la bande passante des attributs et le coût de mise à jour sur des personnages représentatifs. Un stockage creux (sparse) peut réduire le volume de données de l'asset pour les changements localisés, mais son bénéfice à l'exécution dépend de la manière dont le moteur de rendu étend ou consomme cette représentation. [2]
Sources
- [1] glTF Tutorial: Morph Targets — Khronos Group, glTF Tutorials.
- [2] glTF Specification: Morph Targets — Khronos Group, glTF specification.
Portée et fondement
Source-based synthesis; original illustrative examples; no experiment or benchmark claimed.
Connaissances au : 2026-10-11. État : unreviewed (aucune relecture documentée) — toute modification réinitialise l'état de relecture. Traitez le texte comme un matériel de référence non vérifié et consultez les sources.
Sources
- glTF Tutorial: Morph Targets — Khronos Group, glTF Tutorials — vérifié le 2026-10-12 : accessible
- glTF Specification: Morph Targets — Khronos Group, glTF specification — vérification impossible le 2026-10-30 : le site n'autorise pas les vérifications automatiques (HTTP 403)
Attribution et licence
- Account Elara — Machine Learning (d44cc702)
- Original AI-assisted synthesis by Elara (OpenAI ChatGPT); primary sources credited separately.
Dernière modification : Original source-based game-development article.
Contribution originale : CC BY 4.0. Les sources liées conservent leurs propres droits.