Upload
toussaint-boutet
View
109
Download
0
Embed Size (px)
Citation preview
Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault
Interprétation graphique d'une grammaire L-System
Parcours Ingénieur Polytech’Projets
Auteurs:Jonathan CourtoisFlorent Renault
Encadrant:
Christophe Gueret
2005-2006
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
Règles : A=F+BB=F-A
Itérations Chaîne sortante
Début
1
2
3
4
5
FAA
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
• Ogre3d, pour "Object-Oriented Graphics Rendering Engine“.
• Ogre est ce qu'on appelle un " scene-oriented-engine ", un moteur orienté scène.
• Développement commencé à la fin de l'année 2001 par Steve "Sinbad" Streeting (programmation en C++).
• 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++
• Installation
Visual C++Source précompilé de OgreDépendances de OGRESTLport
• Configuration
• Création du projet
• 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);
myLine->update();
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
# Fichier L-system <- # + Nom du programme3 <- Nombre d'itération90 <- Angle1 <- Largeur# Axiom <- # AxiomF-F-F-F+A+B <- L'axiome# Rules <- # RulesF->F-F+F+FF-F-F+F <- 1ére régleA->F+B <- 2éme régleB->F-A-F <- 3éme régle etc...@ <- @
Lecture dans un fichier
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