Connexion


Dernières nouvelles

15.02.2012
Licence 1 MI : Info0203
Mise en ligne des CM 4 à 6
--> accès.
14.02.2012
Licence 3 MI : Info0606
Mise en ligne du CM 3
--> accès.
31.01.2012
Licence 3 MI : Info0606
Mise en ligne du CM 2
--> accès.
23.01.2012
Licence 1 MI : Info0203
Mise en ligne du CM 3
--> accès.

Contact

Courriel :
cyril.rabat [at] univ-reims.fr

Téléphone :
+33-26-91-33-81

Fax :
+33-26-91-33-97

Facebook :
lien Facebook direct

Projets

    Sur cette page, vous trouverez des projets sur lesquels je ou j'ai travaillé. En particulier, vous trouverez une description du projet Dasor. Il y a aussi une grosse partie sur des moteurs d'images de synthèse réalisés en maîtrise d'informatique avec mon binôme Sébastien Gruson.

Dasor

La bibliothèque est en libre téléchargement sur le site officiel de Dasor.

    Dasor est un projet sur lequel j'ai travaillé en marge de ma thèse. Je poursuis actuellement son développement. C'est une bibliothèque C++ qui permet de construire des simulateurs à événements discrets d'application distribuées, et plus particulièrement pour les applications de grille ou de réseau pair-à-pair.

    Actuellement, il existe de nombreux simulateurs, alors pourquoi Dasor ? Après avoir utilisé des simulateurs du type OMNeT++, je me suis aperçu que leur utilisation n'est pas toujours aisée : langage particulier pour la description du réseau, compilations multiples, pas de modèle de graphes proposé ni de structures de données comme l'arbre couvrant ou les matrices, etc... Le concept de Dasor est d'intégrer tout cela dans une bibliothèque C++.

    Il permet de construire des simulateurs indépendants du réseau et des différents modèles de simulation (l'ensemble des modèles de simulation étant appelé le modèle d'exécution du simulateur). A l'exécution, le fichier de description du réseau est passé en paramètre. Ecrit avec un langage simplifié, il permet de définir des topologies simples (anneaux, étoiles, grilles, etc...) ainsi que des topologies plus complexes (réseaux aléatoires de différents types, réseaux petit-monde, etc...). D'autre part, il permet d'indiquer les différents modèles de simulation à appliquer durant la simulation : le choix des modèles mais aussi la possibilité d'omettre des modèles, permet aux simulateurs créés d'avoir un degré de finesse de la simulation très large et très flexible. En particulier, différents modèles sont proposés comme les modèles de pannes, de mobilité ou de communication. La syntaxe du fichier de description permet aussi de laisser à l'utilisateur la possibilité de spécifier des événements particuliers en complément ou à la place des modèles.

générateur de séquences de test

   Dans le cadre de la maîtrise d'informatique, j'ai fait, avec mes collègues Sébastien Gruson et Ludovic Pierre, un travail d'étude et de recherche (T.E.R.) sous la direction de Hacène Fouchal que nous avons continué dans un stage de six mois dans le cadre du D.E.S.S. Le but était de réaliser un générateur de séquences de test à partir d'un algorithme écrit par Hacène Fouchal. Ces différents travaux ont d'ailleurs amenés à plusieurs publications (voir la rubrique publication).

   En plus du générateur, nous avons écrit aussi un générateur d'automates temporisés appelé M.K.A. qui nous a permit de tester le générateur. Nous avons aussi développé différents traducteurs permettant de transcrire des définitions d'automates en UPPAAL, en IF ou en Lotos en langage reconnu par le générateur (du Kronos amélioré).

   Le générateur et M.K.A. ont été écrit entièrement en C et les différents traducteurs en Lex&Yacc. Voici différents liens en relation avec le générateur :

  • Rapport du T.E.R. : le rapport sur le générateur suite au T.E.R.
  • Rapport de D.E.S.S. : le rapport final sur le générateur suite au stage de six mois du D.E.S.S.
  • M.K.A. : le rapport sur le générateur d'automates temporisés aléatoires.

projet de synthèse d'image:
un lecteur de fichiers 'ply'

   Les fichiers 'ply' sont des fichiers contenant des coordonnées 3D d'objets sous forme de facettes. Le but du projet était donc de réaliser un affichage de ce genre de fichier en ajoutant des fonctionnalités de lissages (Gouraud et Phong). Voici un modèle de vache : à gauche le modèle au format "fils de fer" et à droite, le même avec le lissage de type Phong (désolé, la caméra zoome et dezoome automatiquement, il s'agit d'une erreur de parametrage).


Un fichier PLY en fils de fer et avec un lissage de type Phong

   Le moteur que nous avons réalisé, Sébastien Gruson et moi, prend en paramètre un fichier de configuration lu en Lex&Yacc et contenant les différentes configuration du logiciel : position de la caméra, position de la ou des lumières, etc... Nous avons ajouter de nombreuses fonctionnalités comme l'ajout des ombres, la possibilité de réaliser des animations, de composer une scène avec plusieurs fichiers PLY, etc... Les animations sont composées de plusieurs fichiers PPM qui, une fois reconstitués, forment des gifs animés (il est nécessaire d'avoir donc un logiciel permettant cette fonctionnalité). Voici différentes animations réalisées grâce à ce moteur :


Un fichier PLY simple (Happy Boudha), une animation avec une lumière et une scène

   Vous pouvez accéder en ligne au rapport de ce projet qui vous donnera des informations supplémentaires.

projet de synthèse d'image :
un moteur de raytracing

   Le raytracing est une méthode pour créer des images de synthèse. Le principe est de lancer des rayons (d'où le terme "Raytracing") et de calculer les différentes intersections avec des objets contenus dans une scène. Tous ces objets sont définis par des équations.
   Le but de ce projet en C++ et encadré par P.Mignot était de définir quelques objets simples (plans, sphères, cylindres, etc...). Avec mon binôme Sébastien Gruson, nous avons donc réalisé un moteur de raytracing qui prend en paramètre un fichier de configuration contenant la description de la scène ainsi que divers paramètres (lumières, etc...). Le plus de ce moteur était de proposer un outils externe permettant de faire un calcul distribué de l'image.

   Les différents objets possibles sont les sphères, les cylindres, les plans (infinis ou bornés), les slabs (qui sont des compositions d'autres objets : intersections, union, différences). Les images suivantes vous montrent différents objets.



Différents objets possibles dans le moteur

   Afin de présenter au mieux les différentes possibilités du moteur, il fallait créer différentes scènes. Malheureusement, nous avons préféré, mon binôme et moi, ajouter le plus possible d'options : anti-aliasing, brouillard, les CSG (compositions d'images), les textures... Les images suivantes montrent une partie des possibilités du moteur.


Voici deux scènes réalisées grâce au moteur de RayTracing.


Exemple du brouillard et des textures

   Vous pouvez accéder en ligne au rapport de ce projet qui vous donnera des informations supplémentaires.



Version de cette page Mercredi 12 Mai 2010