#1 

05-02-2009 18:55:07

Djinner
Membres
Date d'inscription:
Messages: 9
IP: 81.67.248.153
Courriel

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


#2 

05-02-2009 19:15:04

dark calculator
Membres
Date d'inscription:
Messages: 153
IP: 88.178.191.172
Courriel

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


#3 

06-02-2009 15:59:25

Djinner
Membres
Date d'inscription:
Messages: 9
IP: 81.67.248.153
Courriel

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 :

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


#4 

06-02-2009 17:36:15

dark calculator
Membres
Date d'inscription:
Messages: 153
IP: 88.178.191.172
Courriel

pour le splitscreen sinon tu avais http://irrlicht.svn.sourceforge.net/viewvc/irrlicht/tags/release-1.5/examples/18.SplitScreen/main.cpp?view=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é
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
167 invités en ligne
membre en ligne: -
RSS Feed