Boris BRUGEVIN Sylvain GIORIA PROJET DE MODELISATION CASERNE SERGEANT BLANDAN Master 2 Programmation et Développement Université Lumière LYON 2 - GAMAGORA 2007-2008
II.. PRESENTATIION DU PROJET Ce projet est demandé dans le cadre de l UE 4 «Outils mathématiques et modélisation». L objectif est de modéliser notre lieu de travail, c est-à-dire la caserne Sergent Blandan. Nous avons choisi de modéliser le rez-dechaussée et le 1 er étage du coté G du bâtiment. Concernant les salles et leur mobilier, nous nous sommes fixé comme objectif de modéliser : - La salle de TP des étudiants de master Programmation et développement, - Les salles de TP - Les salles de cours, - Les bureaux du 1er étage - Les couloirs et l entrée du bâtiment G avec l escalier. Nous avons divisé notre travail en deux parties : la modélisation et le développement du code source de l application de rendu. UE 4 : Outils mathématiques et modélisation 1
IIII.. MODELIISATIION A. OUTILS UTILISES Afin de mener à bien la modélisation de la caserne, nous avons opté pour le logiciel 3D Studio MAX. N ayant aucune connaissance en modélisation que ce soit par nos expériences personnelles ou nos formations antérieures, nous avons dû nous initier au préalable à ce logiciel grâce à quelques tutoriels trouvés sur Internet et grâce au soutien de nos camarades de promotion. Concernant les textures, nous avons photographié les quelques murs, sols et mobiliers présents dans les salles modélisées de la caserne. Pour ce qui du découpage de ces textures, nous avons utilisé le logiciel de retouche Photoshop. B. TECHNIQUES UTILISEES Après de nombreux essais de modélisation, nous avons utilisé un certain nombre de technique présente dans 3D Studio MAX. 1. MODELISATION DES SALLES DE COURS Pour mener à bien la modélisation des salles de cours, nous avons créé une «box» aux dimensions relevées. Afin de créer les espaces réservées aux portes et les différentes séparations qui peuvent être présentes dans une pièce, la box est convertie en polygone éditable et des faces sont créés et extrudées pour avoir l effet voulu. En ce qui concerne les portes, la face créée est extrudée pour avoir un effet de profondeur entre les salles, et cette face est ensuite supprimée pour pouvoir voyager entre les salles. 2. MISE EN PLACE DES TEXTURES Les textures sont contenues dans les matériaux et appliquées sur les faces désirées. Néanmoins, un problème se posait notamment lorsque cette face possède une porte (il y a non plus une mais plusieurs faces pour un mur). Pour palier à ce problème, le modificateur «UVW Map» corrige ce problème en permettant de régler le type de mapping souhaité, ici UE 4 : Outils mathématiques et modélisation 2
«planar». De plus, ce modificateur permet de modifier l axe d alignement de la texture, ainsi que la répétition de la texture sur UVW. Ceci est particulièrement utile pour les textures du sol et du plafond. 3. MODELISATION DU MOBILIER Afin de remplir les différentes salles, du mobilier a été modélisé. Parmi ces objets, on trouve des chaises, différents types de tables, du matériel informatique, etc. Pour les modéliser, nous avons créé des formes simples sous 3D Studio Max que nous avons éditées et modifiées en utilisant différents modificateurs. Voici un rendu de certains de ces objets : UE 4 : Outils mathématiques et modélisation 3
IIIIII.. MOTEUR D AFFIICHAGE A. LANGUAGE ET API GRAPHIQUE Afin de pouvoir dessiner la scène créée sous 3D Studio MAX, nous avons implémenté un moteur 3D. Nous avons opté pour le langage C++ qui est orienté objet, compilé et donc rapide à l exécution. L API graphique que nous avons utilisée est OpenGL car il s agit d une bibliothèque totalement portable et beaucoup d effets sont réalisables grâce aux extensions disponibles. B. MOTEUR 3D Le moteur «MAKO» créé pour ce projet est très complet. Nous l avons implémenté de A à Z pour qu il réponde au mieux à nos exigences. Plusieurs modules ont été implémentés afin de la rendre flexible et modifiable à volonté. 1. MODULES DE «MAKO» Les différents modules sont les suivants : - Mako : le moteur - Mako_gl : l API graphique - Math3D : une bibliothèque mathématique - Debugging : une boîte à outils pour le débogage - Loaders : les différents loaders implémentés 2. CLASSES SPECIFIQUES AU PROJET Beaucoup de classes ont été implémentées pour ce moteur 3D. classes demandées pour ce projet sont : CModel et CSceneGraph. Les CModel permet de créer des modèles 3D en mémoire vidéo à partir de fichiers (*.obj). UE 4 : Outils mathématiques et modélisation 4
CScenegraph permet quant à lui de lire un fichier de placement (*.sg) pour ces différents modèles. 3. RENDU DU MOTEUR Voici un rendu effectué à partir du moteur (non texturé): UE 4 : Outils mathématiques et modélisation 5
C. STRUCTURE DES FICHIERS 1. FORMAT OBJ/MTL C est le format des meshs que nous chargeons dans le moteur. Le fichier obj contient les informations géométrique du modèle (sommets, normales, coordonnées de textures, indices, ) et le fichier mtl détient les informations sur les matériaux (ambiant, diffus, spéculaire, brillance, texture, ). Il est donc nécessaire de lire ces deux fichiers afin de pouvoir afficher la mesh dans sa globalité. Exemple de fichier obj : g carre v 0.0 0.0 0.0 v 0.0 0.0 1.0 v 0.0 1.0 1.0 v 0.0 1.0 0.0 vn 1.0 0.0 0.0 f 1//1 2//1 3//1 4//1 2. FORMAT SG C est un format de graphique de scène de notre conception fortement inspiré des fichiers *.x de DirectX. Il permet donc le placement de tous les objets 3D chargés dans le moteur grâce à une arborescence de matrices. Exemple de fichier sg : Frame 1salle { FrameTransformMatrix { 1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.00000 0,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000;;} Frame Table { FrameTransformMatrix { 1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.00000 0,1.000000,0.000000,10.000000,10.000000,0.000000,1.000000;;} } UE 4 : Outils mathématiques et modélisation 6
IIV.. CONCLUSIION Ce travail a été particulièrement intéressant de part son aspect multi compétence qu il requiert, à savoir une partie modélisation et une partie rendu 3D. Ce projet nous a permis de découvrir réellement le travail d un modélisateur 3D et d utiliser pour la première fois un logiciel de modélisation 3D, à savoir 3D Studio MAX. Notre seul regret est que nous n avons pas pu aller au bout de nos idées au niveau de la modélisation de la caserne, faute de temps et de compétence de départ. En effet, c est au moment où nous commencions à faire des modélisations intéressantes que nous avons dû rendre le projet. Néanmoins ce projet fut bénéfique dans la vision de notre futur travail dans le jeu vidéo. UE 4 : Outils mathématiques et modélisation 7