Lancez-Vous. C'est gratuit
ou s'inscrire avec votre adresse e-mail
RVIP par Mind Map: RVIP

1. OpenCV

1.1. Acquisition vidéo

1.2. Repérage balle

1.3. Tracking damier

2. Cours

2.1. Documents autorisés

3. Graphes de scene

3.1. OpenSG

3.1.1. Graphe de scene

3.1.1.1. SimpleSceneManager *mgr = new SimpleSceneManager;

3.1.1.2. Creation de la scene

3.1.1.3. mgr->setRoot (scene);

3.1.1.4. mgr->showAll(); // Affichage

3.1.1.5. NodePtr scene = [...];

3.1.2. Transformations

3.1.2.1. Noeud de transformation

3.1.2.2. NodePtr transNode = Node::create();

3.1.2.3. NodePtr transNode = makeCoredNode<Transform>(&transCore);

3.1.2.4. "Core" de transformation appliqué à ce noeud, souvent déclaré en global pour être modifié au cours de l'application

3.1.2.5. TransformPtr transCore = Tansform::create();

3.1.2.6. Matrix m; m.setIdentity(); m.setRotate(Quaternion(Vec3f(0,1,0), time/1000.f)); m.setTranslate(0,1,0); [...]

3.1.2.7. Noeuds fils de la transformation

3.1.2.8. NodePtr child = [...];

3.1.2.9. Matrice de transformation

3.1.2.10. Application de la matrice de transformation

3.1.2.11. beginEditCP(transCore); transCore->setMatrix(m); endEditCP(transCore);

3.1.2.12. Assignation du core au noeud de transformation et ajout de child comme noeud fils

3.1.2.13. beginEditCP(transNode); transNode->setCore(transCore); transNode->addChild(child); endEditCP(transNode);

3.1.3. Matériaux

3.1.3.1. SimpleMaterialPtr material = SimpleMaterial::create();

3.1.3.2. Couleurs

3.1.3.2.1. beginEditCP(material); material->setDiffuse(Color3f(...)); material->setAmbient(Color3f(...)); endEditCP(material);

3.1.3.3. ClipPlaneChunk

3.1.3.3.1. Création

3.1.3.3.2. ClipPlaneChunkPtr xClip = ClipPlaneChunk::create();

3.1.3.3.3. beginEditCP(xClip); xClip->setEquation(Vec4f(1,0,0,0)); xClip->setEnable(true); xClip->setBeacon(torusNode); endEditCP(xClip);

3.1.3.3.4. Application

3.1.3.3.5. material->addChunk(xClip);

3.1.3.3.6. Configuration et application

3.1.4. Camera

3.1.4.1. Geree par OpenSG qui récupere les évenements

3.1.4.2. void mouse(int button, int state, int x, int y) {...}

3.1.4.3. Possibilité de changer par rapport à la caméra par défaut :

3.1.4.3.1. Trackball : Mode par défaut

3.1.4.3.2. Fly

3.1.4.3.3. Perspective

3.1.4.3.4. PerspectiveCameraPtr camera = PerspectiveCamera::create(); beginEditCP(camera); camera->setBeacon( some_node ); camera->setFov( deg2rad( 60 ) ); camera->setNear( 0.5 ); camera->setFar( 8000 ); endEditCP(camera);

3.1.4.3.5. Stéréoscopie : utilise un décorateur

3.1.4.3.6. cameraDecorator = ShearedStereoCameraDecorator::create(); beginEditCP(cameraDecorator); cameraDecorator->setLeftEye(false); cameraDecorator->setEyeSeparation(6); cameraDecorator->setDecoratee(some_camera); cameraDecorator->setZeroParallaxDistance(200); rightViewport = OSG::Viewport::create(); beginEditCP(rightViewport); rightViewport->setCamera ( cameraDecorator ); rightViewport->setBackground( some_background ); rightViewport->setRoot ( root ); rightViewport->setSize ( .5,0,1,1 ); endEditCP(rightViewport); endEditCP(cameraDecorator);

3.1.4.3.7. osg::FlyNavigator

3.1.4.3.8. osg::TrackballNavigator

3.1.4.3.9. Acquisition du clavier

3.1.4.3.10. forward(); right();

3.1.4.3.11. mgr->setNavigationMode(mode);

3.1.4.3.12. Modes : TRACKBALL FLY WALK NONE

3.1.4.4. Création du viewport et association à la camera :

3.1.4.5. viewport = OSG::Viewport::create(); beginEditCP(viewport); viewport->setCamera ( camera ); endEditCP(viewport);

3.1.4.6. Assignation du viewport à la scene

3.1.4.7. beginEditCP(scene); scene->setViewport(viewport); endEditCP(scene);

3.1.5. Manipulation

3.1.5.1. Permet de manipuler une partie des noeuds du graphe à la souris ou au clavier

3.1.5.2. Création et choix du type de transformation à effectuer

3.1.5.3. ManipulatorManager* mama; mama->createManipulator(const ManipulatorType type);

3.1.5.4. types : ROTATE SCALE TRANSLATE

3.1.5.5. mama->setTarget(TargetNode); mama->setViewport(mgr->getWindow()->getPort()[0]);

3.1.5.6. Application au node choisi

3.2. VRML

3.2.1. Description simplifiée d'un graphe de scène

3.2.1.1. Transformations

3.2.1.2. Transform { translation ... rotation ... children [...] }

3.2.1.3. Formes

3.2.1.4. Shape { geometry [...] appearance [...] #Matériau }

3.2.1.5. Matériaux

3.2.1.6. appearance Appearance { material Material { diffuseColor ... [...] } }

3.2.2. Affichage

3.2.2.1. Parsing (OpenSG)

3.2.2.1.1. SceneFileHandler

3.2.2.1.2. NodePtr n = SceneFileHandler::the().read("filename");

3.2.2.2. Programme associé