Interprétation graphique d'une grammaire L-System Parcours Ingénieur Polytech’ Projets 2005-2006 Auteurs: Jonathan Courtois Florent Renault Encadrant: Christophe Gueret Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault
PRESENTATION Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault
L-system Le biologiste Aristid Lindenmayer (1925-1989) Créé en en 1968 pour étudier la croissance des plantes. Modèles grammaticaux qui peuvent décrire de façon compacte la complexité d'une figure fractale. Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault
Fonctionnement de L-system Axiome : FAA Itérations Chaîne sortante Début 1 2 3 4 5 FAA Règles : A=F+B B=F-A FF+BF+B FF+F-AF+F-A FF+F-F+BF+F-F+B FF+F-F+F-AF+F-F+F-A FF+F-F+F-F+BF+F-F+F-F+B Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault
Ogre 3D Développement commencé à la fin de l'année 2001 par Steve "Sinbad" Streeting (programmation en C++). Ogre3d, pour "Object-Oriented Graphics Rendering Engine“. Ogre est ce qu'on appelle un " scene-oriented-engine ", un moteur orienté scène. Utilisés pour de nombreux projets : simulations, jeux, modélisations etc. Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault
Installation de Ogre sur Visual C++ Source précompilé de Ogre Dépendances de OGRE STLport Création du projet Configuration Programmer Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault
Erreur fréquentes Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault
Modélisation sous Blender Ajouter Cylindre (45 polygones) Redimensionner Déplacer Exporter… Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault
Exportation en .mesh Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault
Le cylindre sous Ogre Après exportation du cylindre sous Ogre Et application de la texture Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault
LA PROGRAMMATION Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault
Création d’une entité sous Ogre Exemple le plan : Plane plane( Vector3::UNIT_Y, 0 ); MeshManager::getSingleton().createPlane("ground", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, plane, 1500,1500,20,20,true,1,5,5,Vector3::UNIT_Z); Entity *ent = mSceneMgr->createEntity( "GroundEntity", "ground" ); mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject(ent); ent->setMaterialName("Examples/Rockwall"); Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault
Le squelette de la plante SceneNode *mNode; DynamicLines *myLine = new DynamicLines(RenderOperation::OT_LINE_LIST); mNode = mSceneMgr->getRootSceneNode()->createChildSceneNode(); myLine->addPoint(2.0f,2.0f,0.0f); myLine->update(); myLine->addPoint(2.0f,0.0f,0.0f); mNode2->attachObject( myLine ); Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault
Le repère sous Ogre Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault
Méthode de la tortue et matrices de rotations Ru désigne une rotation selon l'axe Y ('U' pour 'Up'). Rl désigne une rotation selon l'axe X ('L' pour 'Left'). Rh désigne une rotation selon l'axe Z ('H' pour 'Head'). Alpha désigne l'angle de rotation désiré. Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault
Lecture dans un fichier # Fichier L-system <- # + Nom du programme 3 <- Nombre d'itération 90 <- Angle 1 <- Largeur # Axiom <- # Axiom F-F-F-F+A+B <- L'axiome # Rules <- # Rules F->F-F+F+FF-F-F+F <- 1ére régle A->F+B <- 2éme régle B->F-A-F <- 3éme régle etc... @ <- @ Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault
Application des règles L-system Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault
Exemple Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault
Lancement de Ogre Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault
DEMONSTRATION Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault