créer une application 3d avec un humain déformable

créer une application 3d avec un humain déformable - C++ - Programmation

Marsh Posté le 29-04-2013 à 21:08:37    

Bonjour,
 
 
pour mon projet de fin d'étude, je voudrais créer une application qui consiste en un modèle humain qui se déforme selon des données entrées par l'utilisateur (poids taille sexe etc..), dans le style de makehuman, le soucis c'est que je ne sais pas trop ou commencer, pour la plateforme j'avais vu avec vtk et opengl mais j'arrive pas a déformer un modèle .3ds importé (ou tout autre format 3D sera le bienvenue), j'aimerais bien avoir recours a des B-spline(nurbs) ou bezier pour la déformation , en clair l'utilisation de point de contrôles.
 
je suis ouvert a toute suggestion merci
 
Merci

Reply

Marsh Posté le 29-04-2013 à 21:08:37   

Reply

Marsh Posté le 29-04-2013 à 21:13:25    

C'est quoi ton niveau ?

 

Parce que c'est pas forcément évident, pour la déformation suffit de générer les VBOs en GL_DYNAMIC_DRAW (ou GL_STREAM_DRAW peut être), tu updates ton VBO des sommets quand tu veux mettre à jour tes sommets.
Après, pour la déformation, je vois mal des courbes de Béziers, tu peux être plus clair ? (petit schéma par exemple :D)


Message édité par Terminapor le 29-04-2013 à 21:13:52

---------------
Perhaps you don't deserve to breathe
Reply

Marsh Posté le 29-04-2013 à 21:56:45    

Ben disons que j'ai pas encore commencer a utiliser opengl, j'ai juste vu quelque exemples, et mon niveau est loin (dans opengl), je demande de l'aide juste pour savoir si c'est faisable en opengl, concernant les bspline/bezier c'est juste des definition, en clair je pensais faire la mise a jour de l'humain (le déformer) avec des point de contrôles


Message édité par Dayire le 29-04-2013 à 21:58:55
Reply

Marsh Posté le 29-04-2013 à 23:07:52    

Oui c'est tout à fait possible, mais ne t'attend pas à avoir un contrôle "natif" sur ce que tu recherche.
 
Comme j'ai dit plus haut, tu peux très bien modifier toutes les informations concernant les vertices de ton modèle, il te suffit d'implémenter ta gestion des points de contrôle et de mettre à jour ton buffer.
 
Maintenant, je te conseille pas de commencer par là avec OpenGL (tu finirais par te perdre :D), explore un peu le truc pas à pas avec des petits trucs plus facile d'accès pour finalement t'attaquer à ce projet. :jap:


---------------
Perhaps you don't deserve to breathe
Reply

Marsh Posté le 30-04-2013 à 01:01:14    

Merci de votre réponse, mais es ce que je peux appliquer une déformation avec des point de contrôles sur un humain importé avec .3ds .obj etc.. ?
 
et je me demandé aussi si y avais un moyen d’avoir les cordonnées des points de contrôles depuis un maillage (genre un logiciel tu lui donne un structure 3d et il te donne tout les points (X,Y,Z))
 
Merci infiniment  

Reply

Marsh Posté le 30-04-2013 à 01:22:12    

Ben oui, un format 3D polygonal te donnera toujours les informations sur les vertex : Coordonnées X,Y,Z en world-space, normals (pas obligatoire, tu peux les recalculer), coordonnées UVW pour les textures, et d'autre truc selon les formats, ainsi que les indices qui permettent de faire les tris/quad/n'importe quel primitive sur laquelle est basée ton modèle.
 
Ici http://en.wikipedia.org/wiki/Wavefront_.obj_file tu as la structure entière du format OBJ, maintenant je me répète, je vois que tu ne connais pas le sujet, et je te conseille fortement de commencer par faire une multitude de tutoriaux sur openGL avant de te lancer dans ton projet :jap:


---------------
Perhaps you don't deserve to breathe
Reply

Marsh Posté le 30-04-2013 à 11:21:27    

Le plus simple est peut-être de faire du skinning et d'avoir des bones qui vont servir seulement à altérer l'apparence de ton personnage.
 
L'avantage du skinning, c'est que tu devrais trouver aisément de la documentation sur le sujet.


---------------
last.fm
Reply

Marsh Posté le 01-05-2013 à 13:46:46    

Merci beaucoup pour vos réponses :) je vais voir ça plus en details

Reply

Sujets relatifs:

Leave a Replay

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