ich lerne zu verwenden Irrlicht on Android. Letzten Monat habe ich an dem Treiber gearbeitet, basierend auf openGL es 1.0, was gut funktioniert hat (ich benutze 1.0, weil, wenn ich versuchte, das Beispiel basierend auf dem Treiber 2.0 auszuführen, das Ergebnis sehr seltsam wurde). Laden von Mesh ist in Ordnung, aber was mich verwirrt ist, dass die Textur nicht korrekt angezeigt werden kann. Code Render ist wie folgt:irrlicht android on opengl es 2.0 treiber
smgr = device->getSceneManager();
guienv = device->getGUIEnvironment();
stringc myDir = gSdCardPath;
myDir += "/Irrlicht";
device->getFileSystem()->changeWorkingDirectoryTo(myDir.c_str());
stringc sydneyFilename = "/Irrlicht/sydney.md2";
mesh=smgr->getMesh("/sdcard/Irrlicht/sydney.md2");
if (!mesh) {
device->drop();
__android_log_print(ANDROID_LOG_INFO, "Irrlicht", "cannot getMesh");
return;
}
nodeSydney = smgr->addAnimatedMeshSceneNode(mesh);
if (nodeSydney) {
nodeSydney->setMaterialFlag(EMF_LIGHTING, false);
nodeSydney->setMD2Animation(scene::EMAT_STAND);
stringc sydneyTextureFilename = "/Irrlicht/sydney.bmp";
texture=driver->getTexture("/sdcard/Irrlicht/sydney.bmp");
if (!texture)
LOGI("sydney.bmp load failed");
else{
nodeSydney->setMaterialTexture(0,texture);
LOGI("sydney.bmp load successfully");
}
nodeSydney->setPosition(core::vector3df(0.0f,0.0f,0.0f));
}
smgr->addCameraSceneNode(0, vector3df(0, 10, -50), vector3df(0, 5, 0));
receiver = new AndroidEventReceiver(context);
device->setEventReceiver(receiver);
Alles ist das gleiche wie das Original-Code mit Ausnahme der entfernt Kommentare und die Position der Knoten, und ich bin auch sicher, dass im Code benötigten Dateien auf das richtige Verzeichnis sind.
Kann mir also jemand helfen, der die Erfahrung mit Irrlicht auf Android hat?
Nun, es wäre wahrscheinlich besser zu beschreiben, was "nicht korrekt" in Ihrem Kontext bedeutet. Sie zeigen überhaupt nicht, sie sind auf dem Kopf, unheimliche Farben? Ein Bild wäre wahrscheinlich auch nützlich. –