Infographie 3D - Projet

ven. 01 septembre 2006

Projet OpenGL - Système solaire

Objectifs

A partir des éléments de MESA vus au cours des précédents TP, réaliser la modélisation du système solaire. L'utilisateur doit avoir la possibilité de se déplacer autour du système (rotation, translation, zoom) ou de suivre la trajectoire d'une fusée, ceci de facon interactive par l'intermédiaire de la souris ou de touches du clavier. Les mouvements des astres ainsi que de la fusée équipée d'un unique réacteur (à l'arrière) devront être réaliste, c'est à dire suivre les lois de la mécanique classique.


Modélisation des planètes

Le système solaire est constitué de neuf planètes. Dans l'ordre en partant du Soleil on trouve : Mercure, Vénus, la Terre, Mars, Jupiter, Saturne, Uranus, Neptune et Pluton. Elles gravitent toutes approximativement dans un même plan contenant le centre du Soleil : l'écliptique. L'inclinaison du plan de l'orbite sur l'écliptique varie de 0° à 3° 23', excepté pour Mercure (7° 00') et Pluton (17° 09'). Les trajectoires des planètes sont des ellipses. A l'exception de Mercure et Pluton, ces trajectoires sont quasiment assimilables à des cercles.

Vu du Nord, toutes les planètes tournent autour du Soleil dans le sens anti-horaire. De plus, à l'exception de Vénus, les planètes tournent sur elles-mêmes dans le sens de leur révolution autour du Soleil.

Leur modélisation correspond à de simples sphères, sur lesquelles sont plaquées les textures ci-dessous :

image0 image1 image2

image3 image4 image5

image6 image7 image8

image9 image10 image11

Concernant leurs caractéristiques physiques, celles-ci sont résumées ici.


Interaction

Elle consiste en une animation de la caméra et de la fusée en tenant compte pour cette dernière des forces mises en jeu, c'est-à-dire celles du soleil et des planètes ainsi que celle du réacteur. La poussée de ce dernier pourra être augmentée ou diminuée par l'utilisateur. La caméra pourra être libre ou focalisée sur la fusée, à une distance constante tant que l'utilisateur ne change pas cette distance (elle pourra continuer à subir des rotations autour du point que constitue la fusée). Enfin, l'application doit offrir la possibilité de changer le pas de discrétisation (i.e les intervalles de temps, dt dans les rappels de mécanique ci-dessous).


Rappels de mécanique

Force de gravitation

Soient deux solides P1 et P2, respectivement de masse m1 et m2 et de position M1 et M2, la force qu'exerce P2 sur P1, notée f2->1 s'exprime par :

f2->1 = c m1 m2(M1M2 / ||M1M2||3) avec c : constante gravitationnelle

Remarque : le dénominateur est bien élevé au cube, car la force de gravitation est en 1/r2 (et on normalise le vecteur)

Accélération, vitesse et position

Soit un solide en mouvement de masse m1, son accélération peut se calculer par :

a1 = somme(forces) / m1

Dans le cas qui nous occupe (fusée), il faut ajouter à a1, l'accélération dûe au réacteur.

Ceci nous permet d'en déduire sa vitesse et donc sa position :

v1(t + dt) - v1(t) = a1(t) dt

M1(t + dt) - M1(t) = v1(t) dt

Vitesse angulaire

La rotation d'une sphère sur elle-même durant son déplacement, ou vitesse angulaire, s'exprime par la relation :

Vr = -Vt/R

avec Vr : vitesse de rotation, Vt : vitesse de translation, R : rayon de la boule.


Personnalisation du projet

Trois possibilités s'offrent ą vous :

  • un projet pédagogique : l'utilisateur doit avoir la possibilité d'interroger, par "picking", l'ensemble des objets de la simulation et d'en déduire des informations liées ą la simulation,
  • une simulation : on portera une attention toute particulière ą l'exactitude des paramètres de la simulation (inclinaison, vitesse, etc.), du rendu (visualiser des nuages au dessus de la Terre, des anneaux de Saturne, etc.), de la simulation du vol (jet de gaz à la sortie du réacteur de la fusée, etc.).
  • un jeu : l'utilisateur doit avoir la possibilité de se mettre en vue subjective (cabine de la fusée), ou en mode "caméra intelligente)

Utilitaires

Bibliothèques permettant de charger des images en mémoire : au format gif.

Archive d'un module de chargement de modèles 3D de fusées (avec texture).