[DirectX] problème de skinned mesh

problème de skinned mesh [DirectX] - C++ - Programmation

Marsh Posté le 16-01-2007 à 12:31:09    

bonjour,
 
je travaille actuellement sur le principe des skinned mesh.
J'ai un bras articulé et j'aimerais pouvoir le faire bouger.
 
J'ai cependant un soucis. Tous les exemples liés aux skinned mesh sont basés sur des objets qui sont déjà animés. Moi je ne veux pas créer une animation je veux pouvoir imputer des rotations à certains bones quand je le veux. Mais je n'arrives pas à trouver comment faire cela.
 
une idée ?

Reply

Marsh Posté le 16-01-2007 à 12:31:09   

Reply

Marsh Posté le 16-01-2007 à 16:05:25    

j'ai pas encore joué avec ça (il serait temps), mais grosso modo c'est à toi de gérer ton lot de matrices à passer en constante à un shader, et de faire le blending dans le VS. (il y a aussi une solution en T&L je suppose, mais bon perso j'irai vers la solution shaderisée).
 
maintenant si c'est plus en amont ton problème, c'est autre chose. genre blender une animation et animer un membre de manière paramétrée genre la tête qui tourne pour suivre sa cible ?

Reply

Marsh Posté le 16-01-2007 à 19:04:17    

en fait je dois animer un bras robotisé.  
Comme il ne s'agit que d'une rotation par bones, me lancer dans les vertex shader c'est peut etre me compliquer la tache pour rien.  
Il me semble qu'on peut directement appliquer la rotation sur la matrice des bones mais pour l'instant ça n'a rien donné ... je dois mal m'y prendre

Reply

Marsh Posté le 16-01-2007 à 19:58:21    

généralement, quand on parle de skinning c'est qu'il va y avoir un mélange de plusieurs matrices - par vertex.
 
hors dans ton cas, c'est pas du skinning, c'est juste une "pile" de matrice. tu as plusieures liaisons, et à chaque liaison, tu as une transformation de cumulée.
 
alors après il faut voir comment tu structures: soit ton bras est un ensemble d'élément "indépendant", soit une masse géométrique unique, et chaque vertex possède un indice indiquant la matrice unique l'influançant (un skinning simplifié).


Message édité par bjone le 16-01-2007 à 19:58:45
Reply

Marsh Posté le 16-01-2007 à 20:15:25    

tel que je l'ai modélisé c'est un objet unique qui a 3 articulations.  
Le tout a un squelette formé de 3 bones, comme cela quand je bouge une articulation les autres bouges en fonction du mouvement.

Reply

Marsh Posté le 16-01-2007 à 20:44:23    

oui mais ce que je veut dire tu fais comment:
    tu traçe toute la géométrie d'un coup,
ou tu traçe toutes les articulaltions les unes après les autres ?

Reply

Marsh Posté le 16-01-2007 à 20:52:35    

pour ce que je suis en train de tester je trace les articulations les unes apres les autres

Reply

Marsh Posté le 16-01-2007 à 23:03:42    

et bien ça devrait se faire naturellement non ?
tu cumules une nouvelle matrice a chaque articulation ?

Reply

Marsh Posté le 17-01-2007 à 14:02:21    

en parallèle de l'utilisation des bones ? ou sans utiliser les bones ? (désolée mais tu m'as un peu perturbé là ;) )

Reply

Marsh Posté le 17-01-2007 à 15:04:24    

sans "bones".  
ton bras est une cascade d'articulations, gère une cascade de matrice qui se cumulent.
 
la terminologie bones/skinning est lié quand tu as tu as plusieures matrices qui influence une même géométrie de manière pondérée. (enfin je sais pas comment dire)
 

Reply

Marsh Posté le 17-01-2007 à 15:04:24   

Reply

Marsh Posté le 23-01-2007 à 15:39:21    

merci beaucoup pour tout tes conseils.
Je m'en suis sortie en utisant des piles de matrices, ça marche nickel ! :)

Reply

Marsh Posté le 27-07-2007 à 10:34:09    

Voici un programme qui pourra t'aider à faire des animations de personnage en 3D.
 
visite: http://concoyote.free.fr

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed