Blender

De la nécessité de reprendre du départ

Lorsque nous avons repris en main le projet, la scène 3D actuelle ainsi que le modèle 3D du drone n'étaient pas facilement modifiables, et les mises à jour n’étaient pour la plupart impossibles. Nous avons donc décidé de recommencer du départ.

En partant d'une feuille blanche, nous avons donc décidé, comparativement à la scène 3D de l'année dernière, de reproduire le plus complètement possible l'environnement de test du simulateur, c'est pourquoi nous avons décidé de recréer l'intégralité du site de l'IUT des Cézeaux de Clermont-Ferrand. Cette étape s'est révélée fastidieuse puisque nous devions à partir d'une scène vide recréer les différents bâtiments le plus fidèlement possible sans négliger les performances du simulateur. Cela a été réalisé par l'utilisation de plusieurs techniques avancées dans Blender, logiciel de modélisation 3D, afin de diminuer le travail de rendu en temps réel de notre application. Pour ce qui est du modèle du drone, nous sommes également repartis de zéro afin de recréer un modèle qui concorde avec le nouveau Drone réel. Pour ce qui est du rendu graphique final, nous avons décidé d'un commun accord de garder une texture neutre et volontairement non réaliste afin de mettre en avant le côté simulation de notre application.

Modèle Drone

Corps

Le modèle correspondant au corps du drone reprend les formes générales du vrai drone tout en simplifiant au maximum sa géométrie afin de ne pas diminuer les performances du simulateur.

Hélices

Pour les hélices, nous avons souhaité un maximum de réalisme, car étant la seule partie du drone à posséder un mouvement dans le simulateur il fallait que ce modèle soit détaillé. Pour cela, nous avons utilisé différentes techniques de modélisation 3D proposées par Blender qui sont l' « extrudation » ainsi que le « modifier miror » (Voir ci-dessous).

La première méthode nous permet d'obtenir une courbe assez réaliste d'une moitié de l'hélice en créant des parallélépipèdes à partir de rectangles ou encore des cylindres à partir de cercles. La deuxième méthode quant à elle nous permet de réaliser un effet miroir positionné sur le centre de l'hélice afin d'obtenir une hélice parfaitement symétrique. Nous avons également réalisé un second modèle pour simuler plus efficacement les hélices lorsque le drone est en vol. Ce deuxième modèle possède une géométrie moins évoluée, mais suit tout de même la forme de base de l'hélice lorsque le drone est à l'arrêt.

Scène 3D

Sketchup

Pour la scène 3D, en décidant de réaliser l'intégralité du site des Cézeaux nous avons décidé, afin de simplifier le travail de base de créer les grosses structures sur Sketchup. Ce logiciel est proposé par Google et permet des créations architecturales simple ou complexe assez rapidement, et ce, sans posséder de compétences avancées en modélisation 3D.

Blender

À partir de là, le travail dans Blender peut commencer. Le modèle ne devait plus qu'être affiné afin de représenter certains détails, comme les différentes fenêtres sur les bâtiments, régulariser les normales du modèle (Droite perpendiculaire à une face déterminant la réflexion de la lumière, ou encore régissant les collisions une fois utilisée avec un moteur 3D tel que Raydium).

Utilisation de techniques Blender avancées

« Baking shadow »

L'une des techniques proposées par notre tuteur de projet afin de donner un certain réalisme à notre scène a été l'implémentation des ombres sur la scène. Le rendu des ombres dans toute application 3D est complexe et donne parfois des résultats négatifs lorsque les ombres sont calculées en temps réel. En effet, la réflexion de la lumière est un phénomène complexe dont nous ne parlerons pas ici, mais qui demande énormément de ressources de calcul à un ordinateur lorsque l'on souhaite faire cela directement dans notre application utilisant un modèle 3D complexe.

Afin de simplifier au maximum les calculs du simulateur, nous avons utilisé une technique proposée par Blender pour pré-calculer ces ombres. On désigne cela comme un « baking shadow ». Cette technique permet à l’intérieur du logiciel de modélisation 3D de positionner une source lumineuse pouvant générer des ombres (dans notre cas, un Soleil artificiel) sur notre modèle, et à partir de cet outil, créer une texture représentant les ombres générées par notre Soleil artificiel.

Cette technique possède plusieurs avantages, par exemple de simplifier grandement les calculs du simulateur tout en ayant un rendu beaucoup plus réaliste que sans les ombres. Cependant, elle possède quelques défauts, en effet les ombres ne sont pas dynamiques, mais figées dans la position à laquelle elles ont été générées. De plus, la résolution de la texture générée n'est pas totalement négligeable dans notre cas puisque la scène étant grande, il faut alors créer plusieurs textures s’alignant parfaitement une fois dans le simulateur.

Modificateurs utilisés

Comme dit précédemment, nous avons utilisé plusieurs techniques avancées de Blender, notamment certains « modifiers ». Ces derniers, en Français modificateurs, se définissent par l'application d'un « algorithme » ou « processus » particulier sur un objet. Ils permettent des actions qui, faites manuellement, prendraient énormément de temps et parfois ne nous permettraient pas d'obtenir le résultat parfait escompté. À l’instar du modificateur miroir expliqué précédemment, nous avons utilisé le modificateur « array ». Comme son nom l'indique en anglais, ce modificateur permet, en utilisant un objet de réaliser un « tableau d'objets » en 3D. Cet outil a été particulièrement puissant lors de la réalisation des façades des différents bâtiments de l'IUT nous permettant de placer les fenêtres avec un positionnement optimal. D’autres modificateurs ont été réalisés sur différents objets de la scène, tels que le modificateur « subdivision surface » nous permettant d'améliorer la géométrie d'un objet en particulier (les hélices en sont un exemple).

Modele_drone_corps.png (23 KB) Charles Neau, 03/28/2013 01:17 AM

Modele_helice_1.png (6.89 KB) Charles Neau, 03/28/2013 01:17 AM

Modele_helice_2.png (9.84 KB) Charles Neau, 03/28/2013 01:17 AM

Scene_3D.png (53.9 KB) Charles Neau, 03/28/2013 01:17 AM