首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于opengl es 2.0驱动程序的irrlicht android

基于opengl es 2.0驱动程序的irrlicht android
EN

Stack Overflow用户
提问于 2013-04-23 16:26:53
回答 1查看 1.2K关注 0票数 8

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

代码语言:javascript
复制
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);

除了删除的注释和节点的位置之外,所有内容都与原始代码相同,我还确定代码中需要的文件位于正确的目录中。

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

EN

回答 1

Stack Overflow用户

发布于 2014-11-19 14:14:57

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16164508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档