20
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 Courtois Florent Renault Encadrant: Christophe Gueret 2005-2006

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

Embed Size (px)

Citation preview

Page 1: 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

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

Page 2: 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

Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault

PRESENTATION

Page 3: 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

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.

Page 4: 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

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

Page 5: 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

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.

Page 6: 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

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

Page 7: 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

Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault

Erreur fréquentes

Page 8: 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

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…

Page 9: 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

Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault

Exportation en .mesh

Page 10: 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

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

Page 11: 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

Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault

LA PROGRAMMATION

Page 12: 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

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");

Page 13: 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

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 );

Page 14: 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

Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault

Le repère sous Ogre

Page 15: 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

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é.

Page 16: 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

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

Page 17: 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

Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault

Application des règles L-system

Page 18: 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

Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault

Exemple

Page 19: 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

Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault

Lancement de Ogre

Page 20: 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

Interprétation graphique d'une grammaire L-System par Jonathan Courtois et Florent Renault

DEMONSTRATION