Classe avec opengl - objets 3d et animations

Soyez le premier à donner votre avis sur cette source.

Vue 8 270 fois - Téléchargée 1 347 fois

Description

Il y a deux classes dans ce zip :

Une classe permettant de créer un objet comprenant plusieurs sous-objets. Ces sous-objets sont basés sur les quadriques de GLU (disque, sphère, cylindre...) et sont caractérisés par une position, une rotation et une échelle, et sont texturés.
Diverses méthodes utiles sont associées (comme une par exemple qui dessine l'objet tout entier).
Cela permet de manier, transmettre, et utiliser des groupes d'objets 3D de manière aisée.
Il est également possible d'importer un Object3D à partir d'un fichier.

La deuxième classe permet d'animer ces objets ainsi que le repère lui même, à l'aide de clés (méthode largement inspirée des animations sous Blender). Ainsi, pour animer un objet, il vous suffit de créer un objet Object3D, un objet Animation et d'appliquer le premier à une méthode de l'autre dans une boucle, ce qui allège grandement le code)
Pour les animations, diverses trajectoires sont disponibles : rectilignes, curvilignes et courbes de Bézier. Il y a aussi plusieurs modes de vitesse (vitesse constante, polynomiale i.e. objet qui accélère ou décélère, et progressive i.e. qui accélère ET décélère).
Il est également possible d'importer une animation a partir d'un fichier.

Il il a une source model.cpp et son header qui permettent de créer des Object3D simples (cube, tétraèdre) que l'ont peut intégrer à un autre Object3D avec la méthode inherit()

Ci-joint également un exemple d'application, qui met en œuvre un object3D avec divers modes d'animation.

Dans le zip vous trouverez les sources des classes et leur header, un fichier macro.h contenant les macros utilisée dans les deux classes, une source sdlglutils.cpp et son header, qui ne sont pas de moi mais du siteduzero.com et qui me permet d'importer facilement des textures.

Conclusion :


Il y a des parties légèrement mathématiques, faites-le moi avoir si vous voulez des détails.
Je suis actuellement en train de rédiger une documentation.
Si vous avez des questions, des problème, ou que vous voulez que je rédige une doc,
thomas.lourseyre@gmail.com

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
5
Date d'inscription
dimanche 31 décembre 2000
Statut
Membre
Dernière intervention
3 avril 2011

Si mais seulement il est dans bin/Debug/ (executable linux) tu a juste à le copier dans le dossier.
Sinon tu peux aussi le compiler toi-meme
Messages postés
229
Date d'inscription
dimanche 14 septembre 2003
Statut
Membre
Dernière intervention
20 août 2014

ça m'a l'air sympa tout ça
tu pourrais mettre un exécutable pour tester ?
à moins que ce soit un oubli, il n'est pas dans "Object3D Animation Exemple.zip"
Messages postés
5
Date d'inscription
dimanche 31 décembre 2000
Statut
Membre
Dernière intervention
3 avril 2011

J'ai fini les trajectoires curvilignes et celles de Bezier, je vais rédiger une petite doc pour montrer comment utiliser la classe et je mettrais en ligne le code une fois qu'elle sera finie
Messages postés
5
Date d'inscription
dimanche 31 décembre 2000
Statut
Membre
Dernière intervention
3 avril 2011

Voilà, finalement cela s'est bien passé, j'ai résolu les problème. Voici donc une première version de la classe Animation.
Messages postés
5
Date d'inscription
dimanche 31 décembre 2000
Statut
Membre
Dernière intervention
3 avril 2011

Bonsoir,
J'ai quasiment fini la classe Animation pour les animations à translation rectiligne (les curvilignes et courbe de Bézier à venir), avec progression linéaire, polynomiale (accélère ou décélère), mais je dois encore travailler la progression double (accélère, puis décélère), je ne sait pas si j'aurais le temps d'y finir demain.
J'ai aussi travaillé sur un exemple est sur un constructeur de la classe Object3D qui importe des données à partir d'un fichier.
Je pense que ça sera bouclé la semaine prochaine.
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.