Quels sont les moyens d'implémenter des formes de corps variables?

9

Des jeux comme Ryzom et les Sims permettent aux joueurs d'avoir des corps humains de formes différentes: larges ou minces, grands ou courts, gros nez ou petits, etc. Il me semble qu'il ne serait pas pratique de pré-générer toutes les combinaisons possibles des mailles.

Quelles sont les façons de procéder? Les maillages sont-ils définis par programme? S'agit-il d'une moyenne pondérée de plusieurs modèles de «cible de morphing»?

S'il y a un calcul à faire pour déterminer le maillage: est-ce fait dans un "shader de géométrie"? Ou est-ce fait par le CPU?

Référence: La question " Comment créer des ressources artistiques pour l'éditeur d'avatar 3D " mentionnait des éditeurs d'avatar et des éléments de corps variables, et que certains jeux utilisaient des cibles de morphing et des bombardements de glyphes.

AngryPuffin
la source

Réponses:

3

Cela devrait être fait par le CPU - un shader de géométrie ne donne pas la possibilité d'enregistrer ses résultats, ce qui serait essentiel, et tous les appareils pris en charge par ces jeux ne prennent pas en charge les shaders de géométrie. L'atteindre pourrait être aussi simple que d'appliquer une matrice d'échelle à l'ensemble ou à des parties distinctes.

Edit: J'ai lu votre question connexe. Vous devriez vraiment clarifier cette question pour être explicitement sur la cible de morphing ou explicitement sur la personnalisation de la mise à l'échelle.

DeadMG
la source
A donné plus de contexte à la "question connexe". Je n'ai pas mentionné de cibles de morphing; c'est définitivement une question de personnalisation. Si des cibles de morphing sont dans l'espace de la solution, j'aimerais en savoir plus à leur sujet; mais ma préoccupation est de mettre en œuvre les corps avec des animations et des modèles assortis (par exemple, des modèles de vêtements) de manière cohérente. Je ne suis prédisposé à aucune partie de l'espace de solution.
AngryPuffin
Pas tout à fait correct; si vous utilisez CUDA ou OpenCL, vous pouvez accéder à la géométrie en cours de traitement par le GPU.
Ingénieur