Historique des modifications - Message

Message #5974

Sujet: Diviser l'écran en 4 avec irrlicht


Type Date Auteur Contenu
Création du message 06-02-2009 15:59:25 Djinner
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

Retour

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
135 invités en ligne
membre en ligne: -
RSS Feed