IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

[Source] [OpenGL] Chargeur de modèles ASE (light)


Sujet :

Contribuez

  1. #1
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut [Source] [OpenGL] Chargeur de modèles ASE (light)
    Bonjour,
    Pour un petit projet, j'ai été amené à créer un chargeur de modèles ASE (je n'en trouvais aucun qui correspondait à mes goûts ^^ ).
    Il est écrit en C++, et utilise la libraire OpenGL pour gérer et afficher ce modèle.
    Il permet de charger des fichiers ASE de tout genre. Cependant il ne gère pas les matériaux multitexturés, ni les animations (car je n'en avait pas besoin). Toutefois si quelqu'un veut le faire pas de soucis, à mon avis il manque pas grand chose ^^.
    Les textures appliquées au modèle doivent être des images TGA. J'ai également fournis un chargeur de TGA et un gestionnaire de fichiers TGA. (Créés (ou copier coller, je m'en rappelles plus ^^) à partir des tutoriaux présents sur developpez.com). Moyennant une petite modification du source, on peut utiliser d'autres formats pour les textures.
    Le source se décompose en deux principales classes.
    MeshASE :
    - Permet de lire 1 mesh (~~ objet) présent dans le fichier.
    - Lui appliquer un matériel.
    - Le dessiner.

    ModelASE :
    - Permet de lire et charger un fichier ASE (pouvant comporter plusieurs meshes)
    - Le compiler en une liste OpenGL.
    - Afficher cette liste OpenGL à l'écran.
    - Récupèrer la hauteur / Largeur et rayon moyen de l'ensemble de l'objet (utile pour les collisions simples).


    La déclaration des structures primitives (vertex, faces, matériaux, ...) se trouve dans MeshASE.hpp.

    Ensuite il y a d'autres classes pour l'environnements :
    TextureTGA : Pour charger un fichier TGA
    TextureManager : Gestionnaire de ressources pour les textures
    Singleton : Pour que le gestionnaire soit un singleton ^^
    Main : Simple main initialisant OpenGL / SDL pour avoir un exemple d'utilisation du chargeur ASE.

    Voici le code source, avec le fichier projet utilisable sous code::block (pas tester sous linux).
    N'hesitez pas si vous avez des remarques, si vous trouvez des erreurs, etc.

    Merci !
    Fichiers attachés Fichiers attachés
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Parfait, merci beaucoup pour cette contribution

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. (opengl] chargeur de fichier md2 expolitant les VBO
    Par bachir006 dans le forum OpenGL
    Réponses: 1
    Dernier message: 15/07/2008, 14h43
  2. [OpenGL] Qu'est-ce que les cubemap ?
    Par razmott dans le forum OpenGL
    Réponses: 2
    Dernier message: 25/10/2006, 19h41
  3. Page "Sources OpenGL" : appel à contributions
    Par raptor70 dans le forum OpenGL
    Réponses: 1
    Dernier message: 14/07/2006, 05h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo