Irrlicht -> quake3 map viewer umschreiben zum blender map viewer hilfe



  • Hallo 😉

    auf der suche nach einer recht einfachen und zugleich leistungsstarke
    3d egnine für C++, bin ich auf IRRLICHT gestoßen und
    arbeite seit einiger zeit mit ihr (zumindes veruche ich es)
    ...
    ich möchte folgendes machen: den quake_map viewer umschreiben , sodas ich
    durch eine "Blender Map" fliegen kann aber jedes mal wenn ich was an den
    irrlicht samples ändere dann bekomme ich nur ne fehler meldung oder nen graues Screen 👎

    könnte mir mal einer bitte ein recht einfach gehaltenden code schreiben
    ohne extra header ect??... 😞

    das ist ja schlimm mit irrlicht - selbst das deutsche irrlicht forum
    ist voolgespammt mit viagra kacke aus russland -.- 👎 👎 👎

    zudem sind eine samples nicht ausführbar kp liegt anscheint am code...

    wie gesagt könnte mir mal einer ein gannnnz einfach blender map viewer schreiben mit "//`s auf deutsch ??? were super toll vlt komm ich dann ein
    bisschen mehr von irrlicht :p



  • 1. Das Irrlicht-Forum ist aktiv, gut und nicht zugespamt mit

    helpless_gast schrieb:

    viagra kacke aus russland

    2. Welche Dateiendung hat denn so eine Blender-Map? Wird die von Irrlicht unterstützt? Im Zweifelsfall mal nach .obj oder .3ds exportieren, das geht auf jeden Fall.

    3. Du hast vermutlich irgendwo folgende Zeile in deinem Code (steht so im Tutorial):

    Irrlicht-Tutorial 02 schrieb:

    device->getFileSystem()->addZipFileArchive("../../media/map-20kdm2.pk3");
    scene::IAnimatedMesh* mesh = smgr->getMesh("20kdm2.bsp");
    

    Die erste Zeile solltest du auskommentieren, du brauchst nur die zweite! (Das Bender Dateiformat wird ja nicht gepackt sein.)
    In der zweiten Zeile dann einfach entsprechend den Dateinamen ändern, und schon sollte das funktionieren.

    Du musst allerdings auch folgende Stelle beachten:

    Irrlicht-Tutorial 02 schrieb:

    node->setPosition(core::vector3df(-1300,-144,-1249));
    

    Hier wird die gesamte Map verschoben, was bedeuten könnte, dass du sie gar nicht mehr siehst. Änder den Vektor mal in (0,0,0).

    Zudem wirken Maps in Blender sehr viel größer - mach deine Karte mal so ca. 10 - 20 mal so groß wie sie jetzt ist und dann teste es noch mal.

    4. Bist du eher Grafiker oder eher Programmierer? 😃



  • was sind denn das für datei formarte ?

    20kdm2.pk3 😕
    20kdm2.bsp 😕

    naja ich versuch mich mal weiter dran 😉



  • helpless_gast schrieb:

    was sind denn das für datei formarte ?

    20kdm2.pk3 😕
    20kdm2.bsp 😕

    naja ich versuch mich mal weiter dran 😉

    Wo kommt die Frage denn jetzt her?
    http://en.wikipedia.org/wiki/PK3_(file_extension)

    Wie auch immer, hast du meinen Post eigentlich ganz gelesen?



  • ich hab das jetzt so gemacht:
    tuts zwar aber hat keine textur 😃

    #include <irrlicht.h>
    #include <iostream>
    
    using namespace irr;
    
    #ifdef _MSC_VER
    #pragma comment(lib, "Irrlicht.lib")
    #endif
    
    int main()
    {
    
    	/*
    	video::E_DRIVER_TYPE driverType;
    
    	printf("Please select the driver you want for this example:\n"\
    		" (a) OpenGL 1.5\n (b) Direct3D 9.0c\n (c) Direct3D 8.1\n"\
    		" (d) Burning's Software Renderer\n (e) Software Renderer\n"\
    		" (f) NullDevice\n (otherKey) exit\n\n");
    
    	char i;
    	std::cin >> i;
    
    	switch(i)
    	{
    		case 'a': driverType = video::EDT_OPENGL;   break;
    		case 'b': driverType = video::EDT_DIRECT3D9;break;
    		case 'c': driverType = video::EDT_DIRECT3D8;break;
    		case 'd': driverType = video::EDT_BURNINGSVIDEO;break;
    		case 'e': driverType = video::EDT_SOFTWARE; break;
    		case 'f': driverType = video::EDT_NULL;     break;
    		default: return 1;
    	}
    	*/
    
    	IrrlichtDevice *device =
    		createDevice(video::EDT_OPENGL, core::dimension2d<u32>(640, 480));
    
    	if (device == 0)
    		return 1; // could not create selected driver.
    
    	video::IVideoDriver* driver = device->getVideoDriver();
    	scene::ISceneManager* smgr = device->getSceneManager();
    
    	scene::IAnimatedMesh* mesh = smgr->getMesh("test.obj");
    	scene::ISceneNode* node = 0;
    
    	if (mesh)
    		node = smgr->addOctreeSceneNode(mesh->getMesh(0), 0, 0, 0);
    
    	if (node)
    		node->setPosition(core::vector3df(0,0,0));
    
    	smgr->addCameraSceneNodeFPS();
    
    	device->getCursorControl()->setVisible(false);
    
    	int lastFPS = -1;
    
    	while(device->run())
    	{
    		if (device->isWindowActive())
    		{
    
    			driver->beginScene(true, true, video::SColor(255,100,101,140));
    			smgr->drawAll();
    			driver->endScene();
    
    			int fps = driver->getFPS();
    
    			if (lastFPS != fps)
    			{
    				core::stringw str = L"Irrlicht Engine - Quake 3 Map example [";
    				str += driver->getName();
    				str += "] FPS:";
    				str += fps;
    
    				device->setWindowCaption(str.c_str());
    				lastFPS = fps;
    			}
    		}
    		else
    			device->yield();
    	}
    
    	device->drop();
    	return 0;
    }
    

    und die test.obj hab ich mit blender erstellt -> eine einfache plane mit grass textur



  • Du kannst von Irrlicht natürlich noch manuell eine Texture (Material) setzen lassen, aber das ist natürlich unschön. Versuchs mal mit einem anderen Format. (Das Irrlicht natürlich unterstützen muss!)


Log in to reply