Problem mit Irrlicht - 3D-Objekt (Mesh) laden



  • Guten Abend,
    ich hab mir ein Objekt in Blender erstellt und wollte es in Irrlicht laden.

    Hier ist das Tutorial das ich benutze: http://de.wikibooks.org/wiki/Irrlicht_-_from_Noob_to_Pro:_Blender_und_Irrlicht

    Leider stürzt das Programm einfach ab.
    Etwa so:
    - Programm öffnet
    - Alles weiß
    - Programm stürzt ab (nach etwa 1-2 Sekunden)

    Der Code:

    #include <irrlicht.h>
    using namespace irr;
    
    using namespace core;
    using namespace scene;
    using namespace video;
    using namespace io;
    using namespace gui;
    
    int main(int argc, char** argv)
    {
        IrrlichtDevice *device =
            createDevice(EDT_DIRECT3D9, dimension2d<u32>(1000, 600), 32,
                false, false, false, 0);
    
        device->setWindowCaption(L"Animation mit Irrlicht");
    
        IVideoDriver* driver = device->getVideoDriver();
        ISceneManager* smgr = device->getSceneManager();
        IGUIEnvironment* guienv = device->getGUIEnvironment();
    
        smgr->addCameraSceneNode(0, vector3df(0,0,10), vector3df(0,0,0));
    
        /// Die Mesh - Hier stürzt das Programm ab
        ISceneNode* node = smgr->addMeshSceneNode(smgr->getMesh("untitled.obj"));
    
        while(device->run())
        {
            driver->beginScene(true, true, SColor(3,150,203,255));
    
            smgr->drawAll();
            guienv->drawAll();
    
            driver->endScene();
        }
    
        device->drop();
    
        return 0;
    }
    

    Ich benutzte Code::Blocks mit dem GNU GCC Compiler.
    Soll ich was anderes benutzen?

    Hatte jemand dieses Problem?


  • Mod

    kann es sein dass smgr->getMesh("untitled.obj") null returnt?
    leg das resultat in eine zwischenvariabel ab und bau einen check auf null ein.



  • rapso schrieb:

    kann es sein dass smgr->getMesh("untitled.obj") null returnt?
    leg das resultat in eine zwischenvariabel ab und bau einen check auf null ein.

    addMeshSceneNode ueberprueft das selber.

    Die 1 bis 2 sekunden klingen eher so, als wuerde das Fenster nicht mehr reagieren und Windows es beenden.

    Ersetz mal EDT_DIRECT3D9 durch EDT_BURNINGSVIDEO. Wenn das nicht hilft, musst du Irrlicht mal selbst compilen, was aber etwas uebel sein kann, wenn man sich nicht auskennt.



  • Ich hab die Lösung. Danke... 😃
    Für alle die das Problem auch haben:

    Installiert euch Visual C++. 🙄
    Damit funktioniert alles...


Anmelden zum Antworten