#0 

05-02-2009 19:55:07

Djinner
Petit nouveau
Date d'inscription: 04-02-2009
Messages: 9

Bonjour à tous et merci pour votre attention !

Outre mon problème de repère, je n'ai pas trouvé, si c'est possible, la possibilité (la fonction) pour splitter mon écran en 4 parties (mon device quoi). En effet je voudrais que chaque parties soit une prise de vue différentes de ma scene. En gros je voudrais divisé l'écran en 4, créé 4 caméras, et afficher leur vues de la scène globale dans les 4 parties de mon écran.

Vers quel méthode, classe me conseillerez vous pour m'aider ?

Merci encore !

Hors ligne


#1 

05-02-2009 20:15:04

dark calculator
Abonné
Date d'inscription: 25-02-2007
Messages: 153

Salut,

Verifie les tutos de la version 1.5 d'irrlicht, je crois qu'il y a quelque chose a propos de sa mais j'ai peut être révée, au pire cherche sur ce forum il y a des topics sur le sujet.
(pour ton repère je vais tester ton code car je vois pas de problème apparent)


dark calculator

Hors ligne


#2 

06-02-2009 16:59:25

Djinner
Petit nouveau
Date d'inscription: 04-02-2009
Messages: 9

En feuilletant le forum j'ai trouvé une méthode pour ce que je cherchais. Mais la y'a encore des soucis avec ces draw3DLine de mes...
Les vues des différentes caméras sont correctes, mais c'est l'ajout des repères qui l'est moins....

Voici mon code :

Code:

while(device->run()){
        driver->beginScene(true, true, SColor(255,100,101,140));

        //en haut à gauche
        scenegraph->setActiveCamera(cam1);
        driver->setViewPort(rect<s32>(0,0,400,300));
        video::SMaterial m1;
        m1.Lighting = false;
        driver->setMaterial(m1);
        //driver->setTransform(video::ETS_WORLD, core::matrix4());
        driver->draw3DLine(core::vector3df(0, 0, 0), core::vector3df(10, 0, 0), video::SColor(100, 255, 0, 0));
        driver->draw3DLine(core::vector3df(0, 0, 0), core::vector3df(0, 10, 0), video::SColor(100, 0, 255, 0));
        driver->draw3DLine(core::vector3df(0, 0, 0), core::vector3df(0, 0, 10), video::SColor(100, 0, 0, 255));
        scenegraph->drawAll();

        //en haut à droite
        scenegraph->setActiveCamera(cam2);
        driver->setViewPort(rect<s32>(400,0,800,300));
        video::SMaterial m2;
        m2.Lighting = false;
        driver->setMaterial(m2);
        //driver->setTransform(video::ETS_WORLD, core::matrix4());
        driver->draw3DLine(core::vector3df(0, 0, 0), core::vector3df(10, 0, 0), video::SColor(100, 255, 0, 0));
        driver->draw3DLine(core::vector3df(0, 0, 0), core::vector3df(0, 10, 0), video::SColor(100, 0, 255, 0));
        driver->draw3DLine(core::vector3df(0, 0, 0), core::vector3df(0, 0, 10), video::SColor(100, 0, 0, 255));
        scenegraph->drawAll();

        //en bas à gauche
        scenegraph->setActiveCamera(cam3);
        driver->setViewPort(rect<s32>(0,300,400,600));
        video::SMaterial m3;
        m3.Lighting = false;
        driver->setMaterial(m3);
        //driver->setTransform(video::ETS_WORLD, core::matrix4());
        driver->draw3DLine(core::vector3df(0, 0, 0), core::vector3df(10, 0, 0), video::SColor(100, 255, 0, 0));
        driver->draw3DLine(core::vector3df(0, 0, 0), core::vector3df(0, 10, 0), video::SColor(100, 0, 255, 0));
        driver->draw3DLine(core::vector3df(0, 0, 0), core::vector3df(0, 0, 10), video::SColor(100, 0, 0, 255));
        scenegraph->drawAll();

        //en bas à droite
        scenegraph->setActiveCamera(cam4);
        driver->setViewPort(rect<s32>(400,300,800,600));
        video::SMaterial m4;
        m4.Lighting = false;
        driver->setMaterial(m4);
        //driver->setTransform(video::ETS_WORLD, core::matrix4());
        driver->draw3DLine(core::vector3df(0, 0, 0), core::vector3df(10, 0, 0), video::SColor(100, 255, 0, 0));
        driver->draw3DLine(core::vector3df(0, 0, 0), core::vector3df(0, 10, 0), video::SColor(100, 0, 255, 0));
        driver->draw3DLine(core::vector3df(0, 0, 0), core::vector3df(0, 0, 10), video::SColor(100, 0, 0, 255));
        scenegraph->drawAll();

        driver->endScene();

    }

Et voici ce que cela m'affiche :



En effet le repaire dessiné en haut à droite devrait être en haut à gauche (perspective 3D)
le repaire dessiné en bas à gauche devrait être en haut à droite (selon les y)
le repaire dessiné en haut à gauche devrait être en bas à droite (selon les z)
le repaire dessiné en bas à droite  devrait être en bas à gauche (selon les x)

J'espere m'être fait comprendre... ^^

Une solution ? Parce que la j'ai vraiment du mal ....

Merci smile

Hors ligne


#3 

06-02-2009 18:36:15

dark calculator
Abonné
Date d'inscription: 25-02-2007
Messages: 153

pour le splitscreen sinon tu avais http://irrlicht.svn.sourceforge.net/vie … iew=markup
example 18 d'irrlicht 1.5
sinon j'attend que tu es corrigése que j'ai dis dans l'autre post pour voit ton nouveau bug avec les écrans

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
881 membres
1426 sujets
11116 messages
Dernier membre inscrit: Bidule
38 invités en ligne
Aucun membre connecté
RSS Feed