Modélisation 3D

Outil Blender

Blender est un logiciel libre assez complexe qui permet la modélisation de forme en trois dimensions. Il permet de faire de l'imagerie numérique, ainsi que des animations 3D, comme par exemple certains courts métrages. Il s'agit également d'un logiciel gratuit et multiplateforme. Depuis quelques années, il est disponible en open source, ce qui a permis à la communauté de le développer et de l'améliorer très rapidement. Blender est basé sur OpenGl, ce qui implique un apprentissage assez long pour les novices, car beaucoup de fonctionnalités sont gérées par les raccourcis clavier. Il fonctionne sous forme d'objets qui peuvent être ensuite exportables via des scripts Python. Dans notre cas, nous nous sommes servis d'un script qui permet d'exporter les objets, générés en .blend, en .tri, utilisables dans Raydium, le moteur de jeu vidéo.

Exemple de modélisation avec le logiciel Blender :

Modélisation

Cette partie s'est faite en deux étapes, il y a d'abord eu une modélisation des objets 3D sous Blender, et ensuite un test du rendu sous Raydium, le moteur de jeu.

Modélisation Blender

Etant totalement novices en matière de modélisation 3D, notre première tâche a été de nous former et de nous adapter à cette technologie. Nous avons donc parcouru les différents tutoriels en ligne, par exemple ceux du "Site Du Zéro". Cela nous a permis d'acquérir les bases de la modélisation 3D.
Après cela, nous avons donc directement entrepris la représentation des objets qui intervenaient dans le simulateur. Pour cela, une répartition du travail a été faite de la manière suivante: une personne s'est occupée de la virtualisation du drone et de ses hélices (aussi bien à l'arrêt qu'en marche) et l'autre de l'environnement comprenant la salle, les bâtiments et tous les objets qui s'y trouvent.
Nous avons donc commencé une modélisation peu détaillée, qui nous a permis surtout de nous adapter plus sérieusement à l'interface du logiciel Blender.
Dans cette phase, des retouches ont été faites au fur et à mesure. Par exemple le drone réel a été modifié plusieurs fois en peu de temps. En effet, un accident de vol a cassé les quatre bras du drone qui ont donc dû être remplacés. Le modèle 3D a en conséquence lui aussi dû être revu, ceci afin de s'adapter à ce changement pour plus de réalisme.

drone avant accident :

drone après accident :

On constate bien la modification qu'il y a eu entre autre sur les bras. Ceux-ci étaient bien plus gros avant car de la même épaisseur que la structure, alors qu'après les bras ont été remplacé par des baguettes de bois, beaucoup plus fine.

La modélisation a bien sûre évoluer également en fonction de nos avancées dans la maitrise de l'outil Blender.
Par exemple une pale au début de la modélisation était de ce type :

Après reprise du modèle la pale correspondait plus à ce qu'elle était en vrai, c'est-à-dire que la pale en elle même n'était pas plate et les deux pales n'étaient pas symétriques à partir du moyeu.

Au niveau du maillage des différents objets, nous avons essayé directement de ne pas faire les erreurs de l'année précédente et donc d'avoir un maillage le plus petit possible et donc optimisé. Et cela aussi bien au niveau du drone, qu'à celui de l'environnement c'est-à-dire de la salle de cours. Un maillage trop élevé entraîne des ralentissements au niveau de Raydium. Il a donc fallu trouvé le meilleur compromis entre qualité de la représentation et performance.

Après cela nous avons essayé tout d'abord d'appliquer des couleurs à nos modèles pour que ceux-ci se rapprochent de la réalité.

Adaptation des modèles à Raydium

L'adaptation des modèles à Raydium s'est faite en plusieurs étapes.

La première chose à faire a été en premier lieu de trouver et intégrer à Blender le script Python qui permet d'exporter les modèles 3D Blender pour que ceux-ci soient utilisables dans Raydium. Ce script est donc celui qui permet d'importer ou d'exporter des ".tri". Le ".tri" est le format de fichier dans lequel Raydium stocke donc les objets 3D. Raydium y stocke les coordonnées des points en x,y,z ainsi que les coordonnées de texturage et les textures utilisées qui sont contenues dans leur propre fichier en ".tga".

Ensuite nous avons donc essayé de tester les couleurs appliqués à nos objets dans Raydium.
Nous nous sommes vite rendu compte que celles-ci n'apparaissaient pas. Nous en avons donc conclus que les couleurs n'étaient pas gérées sour Raydium, ce qui a ensuite été confirmé par l'un de nos tuteurs M. Laffont.
À partir de cette constatation, nous avons donc remplacé toutes les couleurs appliquées aux objets par des textures. Ces textures comme expliquées avant sont générées en .tga lors de l'export en .tri des objets dans Blender.
Celles-ci doivent avoir une taille en largeur et hauteur qui est multiple de deux, sinon les textures sont mal appliquées dans Raydium. Par exemple, les cotés fins des bras du drone n'auront pas la texture qui s'applique.
Ce travail de texturage a été long mais a permis d'avoir des modèles 3D qui collent au mieux aux modèles réels.

drone réel :

drone modélisé en 3D :

Après cela nous avons travaillé sur les dimensions des différents objets, par exemple le drone modéliser au départ était bien trop grand par rapport à la scène de test "cocorobix". Il a donc fallu le mettre à l'échelle, ainsi que ces hélices. Le même travail de redimensionnement a été effectué sur notre scène qui est la salle de cours. Cela n'était pas possible sous Blender car dans ce logiciel, il n'y a pas réellement de notion d'échelle (en m ou cm).

Enfin nous nous sommes également occupé d'une gestion basique des changements d'hélice en fonction du fait que le drone soit à l'arrêt au début du simulateur ou soit en vol dès qu'on le lève. Nous avons testé quand "consz" devient supérieur à 0 c'est-à-dire quand le drone se lève lorsqu'on appui sur la touche "D" du clavier ou quand on fait "+" avec la tablette ou smartphone. Lorsque c'est le cas on détruit le drone et ses hélices et on le reconstruit avec les nouvelles hélices rondes et pleines qui représentent une hélice qui tourne.


Gérer la Forge

À peu près un mois avant la fin du projet, il nous a été demandé de gérer la forge. C'est-à-dire gérer les dossiers partagés que tout le monde utilise pour mettre en commun le travail.

Le logiciel utilisé pour cela a été Tortoise SVN. SVN signifie subversion et est un système de gestion de version qui regroupe toutes les sources. Cela permet de garder toutes les versions d'un projet.
Tortoise SVN permet aux utilisateurs du système d'exploitations Windows, d'utiliser SVN via une interface graphique. Ce logiciel permet également d'autres fonctionnalités comme celle de voir instantanément l'avancement du projet à l'aide d'icônes.

Ce travail nous a été demandé car personne avant ne nous avait expliqué le principe d'un SVN et donc il y a eu des fichiers mal placés par certaines personnes et cela a entraîné un désordre au niveau de la forge. Ce désordre a été, la première fois, géré par notre tuteur M. Laffont et il nous a donc demandé de nous occuper de surveiller la forge et de remédier aux désordres à sa place si cela devait arriver.
Nous n'avons pas réellement eu de gros problèmes à ce niveau là, nous avons surtout pris l'initiative d'expliquer à différentes personnes le principe de tortoise SVN et ses fonctions principales comme le "COMMIT" et le "UPDATE".

Blender_Logo_official.png (18.7 KB) Felix Godichaud, 03/12/2012 01:57 PM

blender_modelisation.jpg (200 KB) Felix Godichaud, 03/12/2012 02:07 PM

Blender-modelisation-3D-1.jpg (98 KB) Felix Godichaud, 03/12/2012 02:16 PM

drone1.jpg (142 KB) Felix Godichaud, 03/12/2012 03:07 PM

drone2.jpg (146 KB) Felix Godichaud, 03/12/2012 03:07 PM

drone1.jpg (48.5 KB) Felix Godichaud, 03/12/2012 03:11 PM

drone2.jpg (49.7 KB) Felix Godichaud, 03/12/2012 03:11 PM

drone3.jpg (164 KB) Felix Godichaud, 03/14/2012 12:11 AM

drone5.jpg (173 KB) Felix Godichaud, 03/14/2012 12:51 AM

drone3.jpg (27.4 KB) Felix Godichaud, 03/14/2012 12:51 AM

drone3.jpg (164 KB) Felix Godichaud, 03/14/2012 12:54 AM

drone5.jpg (173 KB) Felix Godichaud, 03/14/2012 12:55 AM

drone6.jpg (27.4 KB) Felix Godichaud, 03/14/2012 12:55 AM

drone7.jpg (98.2 KB) Felix Godichaud, 03/14/2012 04:40 PM

drone8.jpg (97.9 KB) Felix Godichaud, 03/14/2012 04:40 PM

tortoiseSVN.jpg (25.4 KB) Felix Godichaud, 03/14/2012 05:08 PM

projet_quadricoptere_2011-2012.jpg (5.72 KB) Felix Godichaud, 03/24/2012 07:25 PM

projet_quadricoptere_2011-2012-2.jpg (5.96 KB) Felix Godichaud, 03/24/2012 07:25 PM