Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
opengl es 2.0驱动程序上的irrlicht android_Android_Graphics_Opengl Es 2.0_Irrlicht - Fatal编程技术网

opengl es 2.0驱动程序上的irrlicht android

opengl es 2.0驱动程序上的irrlicht android,android,graphics,opengl-es-2.0,irrlicht,Android,Graphics,Opengl Es 2.0,Irrlicht,我正在学习使用。上个月,我一直在开发基于openGL es 1.0的驱动程序,它运行得很好(我使用1.0,因为当我尝试运行基于驱动程序es 2.0的示例时,结果非常奇怪)。加载网格是可以的,但让我困惑的是纹理无法正确显示。 渲染代码如下所示: smgr = device->getSceneManager(); guienv = device->getGUIEnvironment(); stringc myDir = gSdCardPath; myDir += "/Irrlicht"

我正在学习使用。上个月,我一直在开发基于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);
除了删除的注释和节点的位置之外,所有内容都与原始代码相同,而且我也确信代码中所需的文件位于正确的目录中


那么,有在安卓系统上使用Irrlicht经验的人可以帮助我吗?

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


编辑:缩短统一名称可以解决这个问题。

好吧,最好描述一下“不正确”在您的上下文中的含义。它们根本不显示,它们是颠倒的,怪异的颜色?一张照片可能也很方便。谢谢你的回答。向上投票你的答案,让更多面临同样问题的人知道为什么和如何做:)如果你的问题已经通过缩短统一名称得到解决,请将此标记为正确答案,让人们清楚。抱歉,但我不知道这是否正确,我放弃了安卓上的Irrlicht,改用libgdx。如果有人使用你的方法并发现它有效,我会将此标记为正确答案。