Historique des modifications - Message

Message #5974

Sujet: Diviser l'écran en 4 avec irrlicht


TypeDateAuteurContenu
Création du message06-02-2009 15:59:25Djinner
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 ....

Mercismile

Retour

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
67 invités en ligne
membre en ligne: -
RSS Feed