SlideShare una empresa de Scribd logo
1 de 23
OGRE: 3d temps réel open source ,[object Object]
Description de scène
Matériaux
Compositors
Extensions
Futur ,[object Object],[object Object]
Présentation Moteur 3D Temps réel Open Source 2001 - 2009 Multi-platforme: Linux, OS X, Windows, BSD Recherche, Visualisation, Jeux, Etudiants, Réalité augmentée, etc. C++, OO, Motifs Conceptions Accéléré par le matériel  Leader : Steve Streeting Torus Knot software
Librairie Ogre est un composant Ne doit pas être  le  centre de l'application Doit s'insérer dans une application Fait par des développeurs pour les développeurs
Spécialisé et indépendan Moteur 3D accéléré seulement Tout est fait pour l'intégration d'Ogre et non l'inverse Longévité & stabilité  Modélisation en premier, Code facile à maintenir, Commentaire, Documentation,  Branche Stable et Développement  Éviter la « prédestination » Pas de spécificité / type de rendu  Composant réutilisable et extensible Les Règles d'Or
Moteur 3D != Moteur de JEU Renderer  Animation, Particules Shading/Lighting Détection de Collisions  Scripts Son/Vidéo Réseau Physique Intelligence Artificielle Éditeur (Niveaux, Terrain, shaders, modèles)
Description Interface déclarative, de description de scène:  ,[object Object]
Action/Rendu Toutes les utilisations communes en 3D simplifiées: ,[object Object]
Chaque gestionnaire a une interface paramétrable,  extensible/modulable par greffons
DirectX9/10, OpenGL 1&2, GLES 1.1 : système de rendu sont des greffons
Vue d'ensemble
Scène: les bases ,[object Object]
SceneNode : le SceneNode contient les informations au sujet de l'emplacement et de l'orientation des entités.
Entity : une entité est un objet 3D  ,[object Object]
Caméra ! ,[object Object]
ViewPort ,[object Object]
Lumière ,[object Object]
Spot
Direction ,[object Object]

Más contenido relacionado

Destacado

7 idées pour faire d'une bonne équipe une équipe exceptionnelle
7 idées pour faire d'une bonne équipe une équipe exceptionnelle7 idées pour faire d'une bonne équipe une équipe exceptionnelle
7 idées pour faire d'une bonne équipe une équipe exceptionnelleSamuel Le Berrigaud
 
Brochure détecteurs de vision 3D (2009)
Brochure détecteurs de vision 3D (2009)Brochure détecteurs de vision 3D (2009)
Brochure détecteurs de vision 3D (2009)ifm electronic gmbh
 
Fiche catalogue intra 5S
Fiche catalogue intra 5SFiche catalogue intra 5S
Fiche catalogue intra 5SXL Formation
 
jeu sur le kaizen
jeu sur le  kaizenjeu sur le  kaizen
jeu sur le kaizenCIPE
 
Terrassement - calcul de volume
Terrassement - calcul de volume Terrassement - calcul de volume
Terrassement - calcul de volume Abdessadek ELASRI
 
Trouver sa proposition de valeur
Trouver sa proposition de valeurTrouver sa proposition de valeur
Trouver sa proposition de valeurINOË CONSEIL
 
Accompagnement personnalisé à la gestion de carrière
Accompagnement personnalisé à la gestion de carrièreAccompagnement personnalisé à la gestion de carrière
Accompagnement personnalisé à la gestion de carrièreBéatrice BRINET
 
.logistique gestion des stock
.logistique gestion des stock .logistique gestion des stock
.logistique gestion des stock Yassine Badri
 
Van Gogh
Van GoghVan Gogh
Van GoghJDP
 
Gestion des Idées en entreprise
Gestion des Idées en entrepriseGestion des Idées en entreprise
Gestion des Idées en entrepriseChristianLiboiron
 
Rapport ocp etude critique des performances du parc materiel
Rapport ocp   etude critique des performances du parc materielRapport ocp   etude critique des performances du parc materiel
Rapport ocp etude critique des performances du parc materielAminov Bennejjar
 
Organisation des chantiers-2ie
Organisation des chantiers-2ieOrganisation des chantiers-2ie
Organisation des chantiers-2ieIssifou Adam
 
Présentation pfe inchaallah
Présentation pfe inchaallahPrésentation pfe inchaallah
Présentation pfe inchaallahIlyass_rebla
 

Destacado (20)

7 idées pour faire d'une bonne équipe une équipe exceptionnelle
7 idées pour faire d'une bonne équipe une équipe exceptionnelle7 idées pour faire d'une bonne équipe une équipe exceptionnelle
7 idées pour faire d'une bonne équipe une équipe exceptionnelle
 
Brochure détecteurs de vision 3D (2009)
Brochure détecteurs de vision 3D (2009)Brochure détecteurs de vision 3D (2009)
Brochure détecteurs de vision 3D (2009)
 
Fiche catalogue intra 5S
Fiche catalogue intra 5SFiche catalogue intra 5S
Fiche catalogue intra 5S
 
Gestion de carriere
Gestion de carriereGestion de carriere
Gestion de carriere
 
Bilan de competences
Bilan de competencesBilan de competences
Bilan de competences
 
jeu sur le kaizen
jeu sur le  kaizenjeu sur le  kaizen
jeu sur le kaizen
 
Terrassement - calcul de volume
Terrassement - calcul de volume Terrassement - calcul de volume
Terrassement - calcul de volume
 
How To Make A Point
How To Make A PointHow To Make A Point
How To Make A Point
 
Trouver sa proposition de valeur
Trouver sa proposition de valeurTrouver sa proposition de valeur
Trouver sa proposition de valeur
 
Le mille feuille
Le mille feuilleLe mille feuille
Le mille feuille
 
Demarche5 s
Demarche5 sDemarche5 s
Demarche5 s
 
Accompagnement personnalisé à la gestion de carrière
Accompagnement personnalisé à la gestion de carrièreAccompagnement personnalisé à la gestion de carrière
Accompagnement personnalisé à la gestion de carrière
 
Value Proposition Design
Value Proposition DesignValue Proposition Design
Value Proposition Design
 
.logistique gestion des stock
.logistique gestion des stock .logistique gestion des stock
.logistique gestion des stock
 
test
testtest
test
 
Van Gogh
Van GoghVan Gogh
Van Gogh
 
Gestion des Idées en entreprise
Gestion des Idées en entrepriseGestion des Idées en entreprise
Gestion des Idées en entreprise
 
Rapport ocp etude critique des performances du parc materiel
Rapport ocp   etude critique des performances du parc materielRapport ocp   etude critique des performances du parc materiel
Rapport ocp etude critique des performances du parc materiel
 
Organisation des chantiers-2ie
Organisation des chantiers-2ieOrganisation des chantiers-2ie
Organisation des chantiers-2ie
 
Présentation pfe inchaallah
Présentation pfe inchaallahPrésentation pfe inchaallah
Présentation pfe inchaallah
 

Similar a Ogre 3D : une introduction

Tp2: Installation d'une couche d’abstraction entre un robot physique et ros
Tp2: Installation d'une couche d’abstraction entre un robot physique et rosTp2: Installation d'une couche d’abstraction entre un robot physique et ros
Tp2: Installation d'une couche d’abstraction entre un robot physique et rosSaid Benaissa
 
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...Paris Open Source Summit
 
Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++cppfrug
 
XebiCon'17 : Réalité Augmentée pour les terminaux iOS - Julien Datour et S...
XebiCon'17 : Réalité Augmentée pour les terminaux iOS - Julien Datour et S...XebiCon'17 : Réalité Augmentée pour les terminaux iOS - Julien Datour et S...
XebiCon'17 : Réalité Augmentée pour les terminaux iOS - Julien Datour et S...Publicis Sapient Engineering
 
Introduction à GStreamer
Introduction à GStreamerIntroduction à GStreamer
Introduction à GStreamerNicolas Hennion
 
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantHugo Hamon
 
Développement avec Java Micro Edition
Développement avec Java Micro EditionDéveloppement avec Java Micro Edition
Développement avec Java Micro EditionSylvain Wallez
 
Photos et autres sensors sur Windows Phone
Photos et autres sensors sur Windows PhonePhotos et autres sensors sur Windows Phone
Photos et autres sensors sur Windows PhoneMicrosoft
 
ALT.Net Montréal: NETMF et Gadgeteer
ALT.Net Montréal: NETMF et GadgeteerALT.Net Montréal: NETMF et Gadgeteer
ALT.Net Montréal: NETMF et GadgeteerGabriel Mongeon
 
Monogame Introduction (FR)
Monogame Introduction (FR)Monogame Introduction (FR)
Monogame Introduction (FR)Aloïs Deniel
 
Node.js, le pavé dans la mare
Node.js, le pavé dans la mareNode.js, le pavé dans la mare
Node.js, le pavé dans la mareValtech
 
Client riche et nouvelles technologies
Client riche et nouvelles technologiesClient riche et nouvelles technologies
Client riche et nouvelles technologiesSébastien Letélié
 
Retour d'expérience AdobeMC 2011
Retour d'expérience AdobeMC 2011Retour d'expérience AdobeMC 2011
Retour d'expérience AdobeMC 2011jonasmonnier
 
Jeux vidéo sur mobile - Unity3d
Jeux vidéo sur mobile - Unity3dJeux vidéo sur mobile - Unity3d
Jeux vidéo sur mobile - Unity3dXavier MARIN
 

Similar a Ogre 3D : une introduction (20)

Tp2: Installation d'une couche d’abstraction entre un robot physique et ros
Tp2: Installation d'une couche d’abstraction entre un robot physique et rosTp2: Installation d'une couche d’abstraction entre un robot physique et ros
Tp2: Installation d'une couche d’abstraction entre un robot physique et ros
 
HTML5 en projet
HTML5 en projetHTML5 en projet
HTML5 en projet
 
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
 
Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++
 
XebiCon'17 : Réalité Augmentée pour les terminaux iOS - Julien Datour et S...
XebiCon'17 : Réalité Augmentée pour les terminaux iOS - Julien Datour et S...XebiCon'17 : Réalité Augmentée pour les terminaux iOS - Julien Datour et S...
XebiCon'17 : Réalité Augmentée pour les terminaux iOS - Julien Datour et S...
 
Introduction à GStreamer
Introduction à GStreamerIntroduction à GStreamer
Introduction à GStreamer
 
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
 
Développement avec Java Micro Edition
Développement avec Java Micro EditionDéveloppement avec Java Micro Edition
Développement avec Java Micro Edition
 
NodeJs in real life
NodeJs in real lifeNodeJs in real life
NodeJs in real life
 
Photos et autres sensors sur Windows Phone
Photos et autres sensors sur Windows PhonePhotos et autres sensors sur Windows Phone
Photos et autres sensors sur Windows Phone
 
ALT.Net Montréal: NETMF et Gadgeteer
ALT.Net Montréal: NETMF et GadgeteerALT.Net Montréal: NETMF et Gadgeteer
ALT.Net Montréal: NETMF et Gadgeteer
 
sfPot aop
sfPot aopsfPot aop
sfPot aop
 
Monogame Introduction (FR)
Monogame Introduction (FR)Monogame Introduction (FR)
Monogame Introduction (FR)
 
iTunes Stats
iTunes StatsiTunes Stats
iTunes Stats
 
Paug renderscript-mars-2013
Paug renderscript-mars-2013Paug renderscript-mars-2013
Paug renderscript-mars-2013
 
Node.js, le pavé dans la mare
Node.js, le pavé dans la mareNode.js, le pavé dans la mare
Node.js, le pavé dans la mare
 
Client riche et nouvelles technologies
Client riche et nouvelles technologiesClient riche et nouvelles technologies
Client riche et nouvelles technologies
 
Retour d'expérience AdobeMC 2011
Retour d'expérience AdobeMC 2011Retour d'expérience AdobeMC 2011
Retour d'expérience AdobeMC 2011
 
Jeux vidéo sur mobile - Unity3d
Jeux vidéo sur mobile - Unity3dJeux vidéo sur mobile - Unity3d
Jeux vidéo sur mobile - Unity3d
 
la realite a l assaut du web
la realite a l assaut du webla realite a l assaut du web
la realite a l assaut du web
 

Ogre 3D : une introduction

  • 1.
  • 6.
  • 7. Présentation Moteur 3D Temps réel Open Source 2001 - 2009 Multi-platforme: Linux, OS X, Windows, BSD Recherche, Visualisation, Jeux, Etudiants, Réalité augmentée, etc. C++, OO, Motifs Conceptions Accéléré par le matériel Leader : Steve Streeting Torus Knot software
  • 8. Librairie Ogre est un composant Ne doit pas être le centre de l'application Doit s'insérer dans une application Fait par des développeurs pour les développeurs
  • 9. Spécialisé et indépendan Moteur 3D accéléré seulement Tout est fait pour l'intégration d'Ogre et non l'inverse Longévité & stabilité Modélisation en premier, Code facile à maintenir, Commentaire, Documentation, Branche Stable et Développement Éviter la « prédestination » Pas de spécificité / type de rendu Composant réutilisable et extensible Les Règles d'Or
  • 10. Moteur 3D != Moteur de JEU Renderer Animation, Particules Shading/Lighting Détection de Collisions Scripts Son/Vidéo Réseau Physique Intelligence Artificielle Éditeur (Niveaux, Terrain, shaders, modèles)
  • 11.
  • 12.
  • 13. Chaque gestionnaire a une interface paramétrable, extensible/modulable par greffons
  • 14. DirectX9/10, OpenGL 1&2, GLES 1.1 : système de rendu sont des greffons
  • 16.
  • 17. SceneNode : le SceneNode contient les informations au sujet de l'emplacement et de l'orientation des entités.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22. Spot
  • 23.
  • 24.
  • 28.
  • 29. Héritage, modèles, texture alias, variable, etc.
  • 30. Séléction des « Schemes » selon le contexte
  • 31. Itération par type de lumière et/ou filtrage
  • 35. material ParallaxMapping { technique { pass { vertex_program_ref Parallax_vp {} fragment_program_ref Parallax_fp {} texture_unit normalmap {} texture_unit diffusemap {} texture_unit shadowmap { content_type shadow } } } } material MyParallaxObject : ParallaxMapping { set_texture_alias normalmap my_nm.png set_texture_alias diffusemap my.png } Matériaux
  • 36. Système de traitement « post rendu » Scripts (comme matériaux) Peuvent être chainés Place importante dans les rendus modernes. Compositors
  • 37. compositor TV { technique { // Temporary textures texture rt0 target_width target_height PF_A8R8G8B8 target rt0 { // Render from previous compositor // (or original scene) input previous } target_output { // Start with clear output input none // add some noise, distort it, // then render to scene aligned quad pass render_quad { // Renders a fullscreen quad with a material material Ogre/Compositor/OldTV input 0 rt0 } } } } Highlights: Compositors
  • 38. material Ogre/Compositor/OldTV { technique { pass { depth_check off vertex_program_ref Ogre/Compositor/StdQuad_Tex2a_vp { } fragment_program_ref Ogre/Compositor/OldTV_FP { param_named_auto time_0_X time_0_x 120 param_named_auto sin_time_0_X sintime_0_x 120 param_named distortionFreq float 2.7 param_named distortionScale float 2.5 param_named distortionRoll float 0.93 param_named interference float 0.5 param_named frameLimit float 0.40 param_named frameShape float 0.26 param_named frameSharpness float 6.0 } texture_unit 0 { tex_coord_set 0 tex_address_mode clamp filtering linear linear linear } texture_unit 1 { texture Random3D.dds 3d tex_coord_set 1 tex_address_mode wrap filtering linear linear linear } texture_unit 2 { texture NoiseVolume.dds 3d tex_coord_set 2 tex_address_mode wrap filtering linear linear linear } } } }
  • 39.
  • 40. NxOgre,OgreBullet OgreCollada, MOGRE, Hydrax Python-Ogre, Hikari, Qt & wxWidget, OgreSpeedtree, ...
  • 42. The Future Pagination RT shader system Compositor NextGen Shared shader parameters CMake Symbian, iPhone & iPod touch support ....
  • 43. Livres Pro OGRE3D Programming Greg Junker 2006 (Apress) C++ How to Program, 6 th Edition Dietel & Dietel 2007 (Prentice Hall) Introduction to Game Programming with C++ Alan Thorn 2007 (Wordware) Game Engine Architecture Jason Gregory 2009 (A K Peters)
  • 45. ?

Notas del editor

  1. SceneManager Basics Everything that appears on the screen is managed by the SceneManager (fancy that). When you place objects in the scene, the SceneManager is the class which keeps track of their locations. When you create Cameras to view the scene (which we will cover in a later tutorial) the SceneManager keeps track of them. When you create planes, billboards, lights...and so on, the SceneManager keeps track of them. There are multiple types of SceneManagers. There are SceneManagers that render terrain, there is a SceneManager for rendering BSP maps, and so on. You can see the various types of SceneManagers listed here. We will cover more about other SceneManagers as we progress through the tutorials. Entity Basics An Entity is one of the types of object that you can render on a scene. You can think of an Entity as being anything that's represented by a 3D mesh. A robot would be an entity, a fish would be an entity, the terrain your characters walk on would be a very large entity. Things such as Lights, Billboards, Particles, Cameras, etc would not be entities. One thing to note about Ogre is that it separates renderable objects from their location and orientation. This means that you cannot directly place an Entity in a scene. Instead you must attach the Entity to a SceneNode object, and this SceneNode contains the information about location and orientation. SceneNode Basics As already mentioned, SceneNodes keep track of location and orientation for all of the objects attached to it. When you create an Entity, it is not rendered in the scene until you attach it to a SceneNode. In addition a SceneNode is not an object that is displayed on the screen. Only when you create a SceneNode and attach an Entity (or other object) to it is something actually displayed on the screen. SceneNodes can have any number of objects attached to them. Let's say you have a character walking around on the screen and you want to have him generate a light around him. The way you do this would be to first create a SceneNode, then create an Entity for the character and attach it to the SceneNode. Then you would create a Light object and attach it to the SceneNode. SceneNodes may also be attached to other SceneNodes which allows you to create entire hierarchies of nodes. We will cover more advanced uses of SceneNode attachment in a later tutorial. One major concept to note about SceneNodes is that a SceneNode's position is always relative to its parent SceneNode, and each SceneManager contains a root node to which all other SceneNodes are attached.