OGRE: 3d temps réel open source <ul><li>Présentation
Description de scène
Matériaux
Compositors
Extensions
Futur </li></ul><ul>Object-Oriented Graphics Rendering Engine </ul><ul>Paul Cheyrou-Lagrèze – Pop 3D </ul>
Présentation Moteur 3D Temps réel Open Source 2001 - 2009 Multi-platforme: Linux, OS X, Windows, BSD Recherche, Visualisat...
Librairie Ogre est un composant Ne doit pas être  le  centre de l'application Doit s'insérer dans une application Fait par...
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é &...
Moteur 3D != Moteur de JEU Renderer  Animation, Particules Shading/Lighting Détection de Collisions  Scripts Son/Vidéo Rés...
Description Interface déclarative, de description de scène:  <ul><li>Tel modèle à tel endroit vu par tel camera avec telle...
Action/Rendu </li></ul>Toutes les utilisations communes en 3D simplifiées: <ul><li>Gestion des matériaux, des particules, ...
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 </li></ul>
Vue d'ensemble
Scène: les bases <ul><li>SceneManager : le gestionnaire adapté au type de scène rendu (intérieur, extérieur, statique, mul...
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  </li></ul><ul>SceneMgr = mRoot->createSceneManager (ST_GENERIC); Entity *ent1 = Scene...
Caméra ! <ul><li>Camera
ViewPort </li></ul><ul>mCamera = SceneMgr->createCamera(&quot;PlayerCam&quot;); mCamera->setPosition(Vector3(0,10,500)); m...
Lumière <ul><li>Lumières </li><ul><li>Point
Spot
Direction </li></ul></ul><ul>light = mSceneMgr->createLight(&quot;Light1&quot;); light->setType(Light::LT_SPOTLIGHT); ligh...
Prochain SlideShare
Chargement dans…5
×

Ogre 3D : une introduction

3 419 vues

Publié le

Introduction à Ogre3D, description complète, ses principaux composants, ses usages.
les gestionnaire de scenes, les materiaux, les compositor, etc.

Publié dans : Technologie, Business
  • Une illustration de ce qu’on peut faire avec Ogre dans le domaine de la réalité augmentée (cf deuxième vidéo): http://www.drako-thegame.com/?p=796
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • Soyez le premier à aimer ceci

Ogre 3D : une introduction

  1. 1. OGRE: 3d temps réel open source <ul><li>Présentation
  2. 2. Description de scène
  3. 3. Matériaux
  4. 4. Compositors
  5. 5. Extensions
  6. 6. Futur </li></ul><ul>Object-Oriented Graphics Rendering Engine </ul><ul>Paul Cheyrou-Lagrèze – Pop 3D </ul>
  7. 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. 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. 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. 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. 11. Description Interface déclarative, de description de scène: <ul><li>Tel modèle à tel endroit vu par tel camera avec telle lumière
  12. 12. Action/Rendu </li></ul>Toutes les utilisations communes en 3D simplifiées: <ul><li>Gestion des matériaux, des particules, des niveau de détail, des ressources, de la visibilité, des ombres, des animations, des illuminations
  13. 13. Chaque gestionnaire a une interface paramétrable, extensible/modulable par greffons
  14. 14. DirectX9/10, OpenGL 1&2, GLES 1.1 : système de rendu sont des greffons </li></ul>
  15. 15. Vue d'ensemble
  16. 16. Scène: les bases <ul><li>SceneManager : le gestionnaire adapté au type de scène rendu (intérieur, extérieur, statique, multi-zones)
  17. 17. SceneNode : le SceneNode contient les informations au sujet de l'emplacement et de l'orientation des entités.
  18. 18. Entity : une entité est un objet 3D </li></ul><ul>SceneMgr = mRoot->createSceneManager (ST_GENERIC); Entity *ent1 = SceneMgr->createEntity( &quot;Robot&quot;, &quot;robot.mesh&quot; ); SceneNode *node1 = SceneMgr->getRootSceneNode()->createChildSceneNode( &quot;RobotNode&quot; ); node1->attachObject( ent1 ); </ul>
  19. 19. Caméra ! <ul><li>Camera
  20. 20. ViewPort </li></ul><ul>mCamera = SceneMgr->createCamera(&quot;PlayerCam&quot;); mCamera->setPosition(Vector3(0,10,500)); mCamera->lookAt(Vector3(0,0,0)); Viewport* vp = mWindow->addViewport(mCamera); </ul>
  21. 21. Lumière <ul><li>Lumières </li><ul><li>Point
  22. 22. Spot
  23. 23. Direction </li></ul></ul><ul>light = mSceneMgr->createLight(&quot;Light1&quot;); light->setType(Light::LT_SPOTLIGHT); light->setDirection(-1, -1, 0); light->setPosition(Vector3(300, 300, 0)); light->setDiffuseColour(1.0, 0.0, 0.0); light->setSpecularColour(1.0, 0.0, 0.0); </ul>
  24. 24. <ul>Ombres <li>Texture
  25. 25. Stencil
  26. 26. Modulative, Additive
  27. 27. mSceneMgr>setShadowTechnique(SHADOWTYPE_STENCIL_ADDITIVE); </li></ul>
  28. 28. Matériaux <ul>Scheme, techniques, passes, texture units </ul><ul>Ilumination, « Shading » <ul><li>Supporte tous les langages de « shader »
  29. 29. Héritage, modèles, texture alias, variable, etc.
  30. 30. Séléction des « Schemes » selon le contexte
  31. 31. Itération par type de lumière et/ou filtrage
  32. 32. Itération par Passes
  33. 33. Supporte les ombres
  34. 34. Level Of Detail </li></ul></ul>
  35. 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. 36. Système de traitement « post rendu » Scripts (comme matériaux) Peuvent être chainés Place importante dans les rendus modernes. Compositors
  37. 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. 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. 39. Tout est fait par « injection de dépendances »  <ul><li>RenderSystem </li><ul><li>DX9, DX10, GL, GLES </li></ul><li>SceneManager </li><ul><li>Octree, PCZ, BSP </li></ul><li>GpuProgram (shaders) </li><ul><li>Asm, Cg, HLSL, GLSL </li></ul><li>ShadowCameraSetup </li><ul><li>Uniform, Focused, LiSPSM, PSSM </li></ul><li>MovableObject & Renderable </li><ul><li>Entity, BillboardChain, ParticleSystem </li></ul><li>Listeners </li></ul>Extensibilité
  40. 40. NxOgre,OgreBullet OgreCollada, MOGRE, Hydrax Python-Ogre, Hikari, Qt & wxWidget, OgreSpeedtree, ...
  41. 41. Performance
  42. 42. The Future Pagination RT shader system Compositor NextGen Shared shader parameters CMake Symbian, iPhone & iPod touch support ....
  43. 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)
  44. 44. Clients, Utilisateurs
  45. 45. ?

×