-
Notifications
You must be signed in to change notification settings - Fork 0
guillemh/ProjetSPE
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Projet de spécialité Ensimag 2013
***************************************
Image : Animation temps-réel de liquide
Auteurs:
--------
ALLAIN Anne-Hermine (MMIS)
BAUCHET Jean-Philippe (MMIS)
CICCONE Loïc (MMIS)
GUILLEMAUD Héloïse (MMIS)
I. Description de l'archive
-------------------------
a) À la racine se trouvent :
.........................
- ce fichier README
- un fichier de configuration pour Makefile : SPH.pro
- un fichier de configuration pour doxygen : Doxyfile
- un script de nettoyage de l'archive : mrproper.sh
- les dossiers contenant le code source
b) Dossier core :
..............
dossier contenant le simulateur physique, il sera utilisé par les autres dossiers sous forme d'une librairie (voir son .pro).
Fichiers présents:
- fluide.hpp et .tpp
Ensemble de particules, c'est lui que l'on va animer dans la scène. Ce fichier étant à l'origine très long, nous l'avons découpé en plusieurs bouts de code :
. fluide_arps.tpp : toutes les méthodes concernant l'implémentation de l'ARPS
. fluide_collisions.tpp : les 2 méthodes qui permettent la collision avec une boîte ou celles de la cascade
. fluide_interactions.tpp : les méthodes qui permettent de modifier les paramètres du fluide interactivement prendant la simulation
- materiau.hpp et .tpp
Description de différents types de matériaux utilisables pour le fluide.
Nous n'avons effectué nos simulations que pour l'EAU, les autres types n'ont pas de paramètres adaptés.
- matriceForces.hpp et .tpp
Structure de données pour stocker le calcul des forces d'interaction entre particules
- metaballs.hpp et .tpp
Méthode de rendu pour les particules
- noyauLissage.hpp et .tpp
Objet renvoyant les valeurs du noyau et de ses opérateurs de dérivation, pour l'interpolation des grandeurs
- particule.hpp et .tpp
Objet de base composant le fluide
- premier.hpp et .tpp
Structure permettant de récupére un nombre premier valable pour une table de hachage
- vecteur.hpp et .tpp
Classe de base décrivant un vecteur
c) Dossier g3d :
.............
dossier contenant le viewer OpenGl pour la simulation, ainsi qu'une scène permettant de tester différentes configurations de fluides (surtout pour le debug).
Fichiers présents:
- main.cpp
Ouvre la fenêtre de visualisation QGLviewer : a priori pas de raison de le modifier
- scene.h et .cpp
Objet contenant tous les éléments à afficher; est instancié par le viewer
- viewer.h et .cpp
Classe gérant la scène; son dessin, son animation, et les interactions utilisateur
d) Dossier cascade :
.................
dossier contenant les fichiers de la scène finale
Fichiers présents:
- cascade.hpp et .tpp
Classe permettant de dessiner les bords, les parois de la cascade
- main.cpp et viewer : idem que précédemment
- sceneCascade.h et .tpp
Contient les objets de la scène finale : un fluide, une cascade, et une skybox
- skybox.h et .tpp
Classe permettant de dessiner une skybox à notre scène : des textures pour faire un décor de fond
e) Dossier test :
..............
dossier contenant les tests unitaires des différentes classes du projet
Pour chaque classe, les tests unitaires sont écrits dans un fichier .cpp qui définit une fonction, et celle-ci est appelée dans main.cpp.
f) Dossier doc :
.............
dossier dans lequel est générée la documentation doxygen, en format html
II. Compilation et exécution du projet
-----------------------------------
Pour compiler :
qmake -r (-r pour recursive, lance qmake dans chaque sous dossier)
make
Dans tous les sous-dossiers (sauf g3d/), les exécutables sont générés dans un sous-dossier release/. Pour le dossier core/, ce sont les librairies qui sont générées dans ce sous-dossier.
Chaque sous-dossier contient un fichier de configuration .pro, qui génère un Makefile. Lors de l'ajout d'un nouveau fichier, il faut bien penser à l'intégrer dans la compilation en modifiant le .pro en conséquence.
Nous avons implémenté quelques règles spécifiques :
- make realclean
Lance le script mrproper.sh, qui lance tous les make clean des sous-dossiers, et supprime aussi les Makefile générés.
- make doc
Génère la documentation doxygen dans le dossier doc/.
- make viewdoc
Ouvre la documentation dans un navigateur Firefox.
Voici les différents exécutables que l'on peut lancer :
- cascade/release/cascade
lance la scène finale de casade
- g3d/test_dessin_fluide
lance la scène définie dans scene.cpp
- test/release/test
lance la batterie de test unitaires
Pour lancer l'animation des scènes, il faut appuyer sur la touche 'Enter'.
III. Interactions utilisateur
-------------------------
Il est possible d'interagir avec le viewer avec des événements clavier.
- la touche 'H' ouvre une fenêtre décrivant comment utiliser QglViewer, et les événements déjà définis
- la touche 'W' permet de basculer entre affichage plein ou seulement du maillage des primitives
- la touche 'L' permet d'activer ou désactiver l'éclairage de la scène
- la touche 'Enter' déclenche ou stoppe l'animation
- la touche 'Z' permet de n'exécuter qu'une boucle d'animation, dans g3d/test_dessin_fluide, lorsque la macro PASAPAS est égale à 1 dans g3d/scene.cpp
- la touche 'Début' ou 'Home' permet de recommencer complètement la scène (sans se souvenir des éventuels changements effectués par interaction)
- la touche 'V' permet de changer de méthode d'affichage du fluide : points, sphères, ou metaballs
- la touche 'I' permet de lancer dans le terminal l'interface d'interaction avec l'utilisateur, qui permet de modifier en cours de simulation certains paramètres du système; il suffit de suivre les instructions du terminal, en entrant les valeurs demandées.
Attention, aucune vérification n'est faite sur les valeurs entrées.
- la touche 'R' permet de lancer un enregistrement image par image de la simulation : celles-ci sont enregistrées là où l'exécutable a été lancé
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published