déc
31

Loader 3D format ASE

Ce projet est le résultat de l’année passée en première année ingénierie à l’ESGI pour le cours de langage C. Ayant choisi une option jeux-vidéo, il nous était imposé comme contrainte l’utilisation de l’API OpenGL dans la réalisation de notre projet.

Le projet

Le projet qui a été retenu est la conception d’un logiciel de visualisation d’objet 3D autour d’une librairie permettant la gestion simplifiée d’une scène virtuelle. En effet, plutôt que de se lancer dans la réalisation d’un jeu-vidéo sans outils propre à ce genre d’application (moteur graphique, physique, support d’objet 3D, gestion des threads…), il paraissait plus intéressant de porter son attention sur le développement d’un de ces outils. C’est pourquoi le choix du développement c’est portée principalement sur le moteur graphique et le supporte d’objet 3D.

Les Objets 3D

le but du projet est donc de développer un ensemble de fonctions permettant entre autre de charger des objets 3D réalisés grâce à des outils extérieurs (3D Studio MAx, Blender…). Le choix d’un format de fichier 3D a donc du être étudié. Celui qui paraissait le plus intéressant dans notre cas est le format ASE (ASCII Export). De part le manque de documentation sur les différents formats réputés comme le .3DS, le format ASE du fait des son encodage en ASCII, permettait une très grande lisibilité, facilitant la compréhension de l’architecture d’un l’objet 3D.


Firm jeu1

menu jeu2

Firm jeu2

Les caractéristiques supportées

Voici une liste des différentes caractéristiques implémentées pour la gestion des objets 3D :

  • Dessin de la géométrie.
  • Utilisation de matériaux pour un rendu plus préçis.
  • Gestion du gabarit de l’objet.
  • Support des UV de mapping.
  • Transparence des matériaux.
  • Textures supportées sur des images de type JPEG.
  • Interpolation de 2 meshs pour l’animation.

Firm jeu1

menu jeu2

menu jeu2

Les librairies

Différentes librairies ont étées utilisées pour la réalisation de ce projet.

  • JpegLib : pour la lecture d’image utilisée pour le mapping.
  • OpenGlut : pour la gestion globale des fenętres, événements sourie et autre timer…
  • OpenGL : pour les finctions bas niveau de traçage de géométrie, effet de transparenc, viewport …

Sources

Pour les personnes désireuses de consulter les sources, voir même d’utiliser l’API développée, vous trouverez la documentation associée ainsi que les sources ci-dessous.

La documentation

Le projet : Nonif3dViewer


2 commentaires

Comments RSS Feed  

Désolé, les commentaires sont fermés pour le moment.

top