Animation en OpenGL à l'aide de modèles 3D

11

J'ai créé un modèle dans Blender. Maintenant, je veux lire ce modèle 3D dans mon programme c ++. J'ai pensé qu'un modèle peut être exporté vers différents formats de fichiers, par exemple .obj, .3ds ou COLLADA, puis lu dans un programme c ++. Je fais des recherches sur le Web depuis longtemps et j'ai trouvé de nombreux tutoriels. Mais j'ai rencontré des problèmes avec la plupart d'entre eux. Par exemple, dans le didacticiel Nehe, ils utilisent des glaux que je ne veux pas utiliser dans mon programme. Et les tutoriels restants utilisent md2 qui n'est pas pris en charge par Blender.

Alors, quelqu'un peut-il me guider quel format de fichier utiliser pour exporter un modèle 3D et comment le charger dans mon programme OpenGL? Comment puis-je animer ce modèle? Est-il possible d'ajouter des effets supplémentaires comme le mappage de tonalité après son chargement dans le programme c ++ à l'aide d'OpenGL? si oui alors comment?

PS J'utilise Linux pour le développement de jeux

snape
la source

Réponses:

2

J'irais pour le format OBJ. Comme vous l' avez probablement déjà réalisé, il y a des centaines de chargeurs OBJ pour C ++ . Je crois que l'un des plus matures est Assimp , il prend en charge de nombreux formats différents et il est assez bien documenté. Voici un exemple d'utilisation.

Dan
la source
le lien lighthouse.com ne fonctionne pas
Snape
Cela fonctionne pour moi dans tous mes navigateurs ... Essayez ce lien x90.es/1CC
Dan
2
Obj ne prend pas en charge les maillages animés, n'est-ce pas? il suffit de google "Blender opengl skinned mesh" et je m'attends à ce que vous trouviez un format qui convient à ce que vous voulez modifier: impossible de supprimer mon message, était censé être une réponse à un message précédent recommandant le format obj
Stowelly
1
.obj ne prend pas en charge l'animation et cette réponse est fausse. stackoverflow.com/questions/757145/…
Sean Middleditch
2

Blender 2.60 a un support d'animation fixe COLLADA, il était plus ou moins cassé dans les versions précédentes. Cependant, si vous n'avez pas encore chargé de formats de modèle dans votre propre code, je vous suggère d'apprendre à charger .obj en premier. Il est en ASCII, il est donc lisible par l'homme et facile à lire sans bibliothèques de chargeurs externes.

SurvivalMachine
la source
1

3ds ne contient aucune donnée d'animation afin que l'une ne fonctionne pas. Collada, je ne sais pas grand-chose, mais quand j'ai décidé du format à utiliser dans mon jeu, j'ai beaucoup cherché et comparé et finalement j'ai opté pour le format B3D, il prend en charge l'animation squelettique et peut être téléchargé depuis Irrlicht (il contient également des valeurs d'éclairage ).

J'utilise l'exportateur 'pipeline b3d' de 3dsMax et j'ai codé mon propre shader hlsl pour animer et éclairer les maillages, cela fonctionne très bien.

Vous pouvez vérifier comment Irrlicht le fait (c'est-à-dire le chargement et l'animation), il fait l'animation dans le logiciel, mais il y a des exemples si vous cherchez un peu comment le faire avec un shader (si vous le souhaitez). Une bonne chose est qu'Irlrlicht prend en charge OpenGL et Linux.

Un autre format assez simple est le format .X, il doit y avoir des tonnes d'exemples sur la façon d'exporter, de charger, d'analyser et de configurer le squelette et de l'animer avec. C'est un format Microsof, alors vous ne voudrez peut-être pas l'utiliser :-)

La cartographie des tons et tout cela n'a absolument rien à voir avec l'animation, alors si vous savez comment utiliser cette technique, vous pouvez le faire avec des maillages animés.

Valmond
la source