【问题标题】:irrlicht android on opengl es 2.0 driverirrlicht android on opengl es 2.0 驱动程序
【发布时间】:2013-04-23 08:26:53
【问题描述】:

我正在学习使用Irrlicht on Android。上个月我一直在研究基于 openGL es 1.0 的驱动程序,效果很好(我使用 1.0 是因为当我尝试运行基于驱动程序 es 2.0 的示例时结果很奇怪)。加载网格是可以的,但让我困惑的是纹理无法正确显示。 渲染代码如下:

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

除了删除的 cmets 和节点的位置之外,一切都与原始代码相同,我也确信代码中所需的文件位于正确的目录中。

那么任何有在 Android 上使用 Irrlicht 经验的人都可以帮助我吗?

【问题讨论】:

  • 好吧,在您的上下文中描述“不正确”的含义可能会更好。它们根本不显示,它们是颠倒的,怪异的颜色?图片可能也很方便。

标签: android graphics opengl-es-2.0 irrlicht


【解决方案1】:

我们遇到了同样的问题。唯一的问题是统一名称的长度。统一名称将存储在 COGLES2FixedpipelineShader、COGLES2NormalMapShader 等类的 SBuiltinShaderUniformNames[] 数组中。将统一名称缩短到 10 个字符以下。

编辑:缩短统一名称将解决此问题。

【讨论】:

  • 感谢您的回答。投票给你的答案,让更多面临同样问题的人知道为什么以及如何做:)
  • 如果您的问题已通过缩短统一名称得到解决,请将其标记为正确答案以使人们清楚。
  • 对不起,我不知道这是否正确,我在 Android 上放弃了 Irrlicht 并改用 libgdx。如果有人使用您的方法并发现它有效,我会将其标记为正确答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多