Sto imparando a usare Irrlicht on Android. Il mese scorso ho lavorato sul driver basato su openGL es 1.0, che ha funzionato bene (io uso 1.0 perché quando ho provato a eseguire l'esempio basato sul driver es 2.0 il risultato si è rivelato molto strano). La mesh di caricamento va bene, ma ciò che mi confonde è che la texture non può essere mostrata correttamente. Render codice è il seguente:irrlicht android on opengl es 2.0 driver
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);
Tutto è lo stesso del codice originale, tranne i commenti rimossi e la posizione dei nodi e sono anche sicuro che i file necessari nel codice sono nella directory corretta.
Quindi, chiunque abbia esperienza con Irrlicht su Android, può aiutarmi?
Bene, probabilmente sarebbe meglio descrivere cosa significa "non correttamente" nel proprio contesto. Non si mostrano affatto, sono capovolti, colori inquietanti? Un'immagine sarebbe probabilmente anche utile. –