Irrlicht android en opengl es 2.0 driver

Estoy aprendiendo a usar Irrlicht en Android . El mes pasado he estado trabajando en el driver basado en openGL es 1.0, que funcionó bien (uso 1.0 porque cuando intenté ejecutar el ejemplo basado en driver es 2.0 el resultado resultó ser muy extraño). Cargar malla está bien, pero lo que me confunde es que la textura no se puede mostrar correctamente. El código de render es el siguiente:

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); 

Todo es igual que el código original excepto los comentarios eliminados y la posición de los nodos y también estoy seguro de que los archivos necesarios en el código están en el directorio correcto.

Así que cualquier persona que tenga la experiencia usando Irrlicht en Android por favor me ayude?

Nos enfrentamos al mismo problema. La longitud de los nombres de los uniformes es el único problema. Los nombres de los uniformes se almacenarán en la matriz SBuiltinShaderUniformNames [] en las clases COGLES2FixedpipelineShader, COGLES2NormalMapShader etc. Acorte los nombres uniformes a la longitud de menos de 10 caracteres.

Editar: El acortamiento de nombres uniformes resolverá este problema.

  • Utilizar glVertexAttribPointer y glDrawElements para extraer de un buffer de vértice empaquetado
  • Vertex Buffer Objects (VBO) no funciona en Android 2.3.3, con GLES20
  • LibGDX SpriteBatch Multitextura posible?
  • OpenGL ES 2.0 texture2D sesgo / lod
  • Animación esférica con texto para el uso de la nube de etiquetas en la aplicación para Android
  • OpenGL en Android versus iOS: optimizaciones, y donde difieren
  • Las aplicaciones de Android OpenGL dejan de funcionar después de cargarlas en el emulador
  • Recubrimiento opengl en vista de cámara
  • Error al intentar obtener Alraedy creado Surface y recibir EGLNativeWindowType ya conectado a otro error de API
  • Bajo rendimiento al ejecutar eglSwapBuffer y eglMakeCurrent
  • GLSurfaceView onDrawFrame comportamiento de borrado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.