Articles of irrlicht

在Irrlicht中使用DirectX文件格式的纹理问题

我使用Irrlicht 1.8.1和Blender 2.71来创建我的animation。 我刚刚创建了一个简单的多维数据集,添加了一个默认材质,并使用UV展开将所有贴图在Blender中映射到一个纹理。 然后我用我保存旋转+位置+比例尺,当我按ALT + A,一切正常,当我按F12,我可以看到纹理映射也很好。 当我使用OBJ格式(这不是一个animation)导出网格,并将其加载为AnimatedMeshSceneNode或简单的MeshSceneNode时,Irrlicht按预期呈现它。 精细 但是,当我导出整个多维数据集animation场景(检查导出animation选项和材料选项等),并将其加载到Irrlicht(cube.x)模型加载和animation开始如预期,但纹理映射内立方体! 然后立方体的外表面看起来像transparrent让你看到映射在这个立方体里面的纹理。 想到,我注意到Irrllicht能够在它的示例源代码中加载众所周知的“dwarf.x”animation模型。 任何人都知道如何解决这个纹理不需要的行为?

链接器错误,同时试图扩展和重新编译irrlicht

我正在尝试创建一个自定义IGUIElement ,因为我已经包含了来自irrlicht的源代码并扩展了CIGUIStatictext类。 现在每当我尝试编译我的项目时,都会遇到大量的链接器错误,我必须承认对编译过程的无知,并没有真正弄清楚为什么会发生这种情况。 我包括我的头和cpp类的源代码作为pastebin。 链接器错误的示例: 1>graphNode.obj : error LNK2019: unresolved external symbol "public: virtual__thiscall irr::gui::CGUIStaticText::~CGUIStaticText(void)" (??1CGUIStaticText@gui@irr@@UAE@XZ) referenced in function__unwindfunclet$?? 0graphNode@gui@irr@@QAE@PAVIGUIEnvironment@12@PAVIGUIElement@12@HV?$rect@H@core@2@PB_W@Z$0 1>graphNode.obj : error LNK2019: unresolved external symbol "public:__thiscall irr::gui::CGUIStaticText::CGUIStaticText (wchar_t const *,bool,class irr::gui::IGUIEnvironment *,class irr::gui::IGUIElement *,int,class irr::core::rect<int> const &,bool)" (??0CGUIStaticText@gui@irr@@QAE@PB_W_NPAVIGUIEnvironment@12@PAVIGUIElement@12@ HABV?$rect@H@core@2@1@Z) referenced in function "public: __thiscall irr::gui::graphNode::graphNode(class irr::gui::IGUIEnvironment *,class irr::gui::IGUIElement *,int,class irr::core::rect<int>,wchar_t const*)" (??0graphNode@gui@irr@@QAE@PAVIGUIEnvironment@12@PAVIGUIElement@12@HV?$rect@H@core@2@PB_W@Z) 1>graphNode.obj […]

irrlicht:绘制两个纹理与draw2dImage问题

我只是开始与irrlicht(和C + +)2D发展,我跟着2D教程,所以我能够在屏幕上绘制2d纹理(与draw2DImage)这似乎工作正常。 所以我做了一个单独的课,在我画船的同时也改变它在Update函数中的位置,但是在这里遇到一个问题。 当我改变它的位置时,船被抽两次。 void Ship::Draw(irr::video::IVideoDriver * driver, irr::video::ITexture* texture) { driver->draw2DImage((texture), this->position); } void Ship::Update(float gameTime) { this->position.set(this->position.X += 1, this->position.X += 1); } 船在原来的地方被拖曳一次(我想是0,0),但似乎船正在复制,然后复制。 在我的main.cpp我有这个: ship1->Update(1); ship1->Draw(driver, shipTexture); (另外,船的纹理在一段时间之后被切断(如截图所示))。 而且,当我不“移动”船(所以我只是在启动时改变它的位置(即this-> position.X = 100 this-> position.Y = 100),那么它的行为是正常的,所以也许在那里我设置所有东西的方式有问题吗?

Irrlicht引擎游戏不会在Linux上编译。 未定义的参考(opengl和xfree)

我试图移植我正在开发的Linux游戏。 但是,当我编译我得到了很多未定义的引用主要是看起来像他们属于OpenGL的函数。 大多数都被称为gl …但其中一个被称为XFree。 我用这个命令编译它: g++ main.cpp -L../../../LIB/irrlicht-1.8.3/lib/Linux/ -lIrrlicht -I../../../LIB/irrlicht-1.8.3/include/ 其中一个错误: /home/owner/LIB/irrlicht-1.8.3/source/Irrlicht/COpenGLDriver.cpp:3746: undefined reference to `glVertex3f

我怎样才能把一个开放的世界变成一个固定大小的数组?

我正在开发一个小游戏,在那里我需要一个跟踪玩家的敌人的A *寻路algorithm。 我已经学习和testing了一个path寻找algorithm,但它只适用于固定大小的数组。 我怎样才能把一个开放的世界变成一个固定大小的数组? 我正在开发与Irrlicht引擎1.6版本。 我知道这是一个相当古老的,但它是Windows XP上唯一适用于我的引擎。 这是我的一个二维网格上工作的明星path查找代码。 另外,如果需要的话, 这里有一个链接到我用Irrlicht创建的行走者 。 您必须将媒体文件夹放在本地驱动器中。

Irrlicht呈现基本的OBJ

我一直在试图渲染一个具有一些基本function的“房间”,我发现了一些“错误”。 所以起初我在搅拌机的6架飞机上做了一个“房间”,给了他们每个人不同的颜色。 之后,我使用Irrlicht进行渲染,这里是第一个保护区: 但是如果我绕着房间去看另一边,他们开始消失: 起初,我可能是因为我与对象“太接近”或“太远”,或者对象太“太小”,但我已经testing了所有这些,并得到了同样的保护。 所以我想这个问题来自我导入和加载网格的方式,但我找不到解决的办法。 这里是导入网格/渲染它的代码: IAnimatedMesh* mesh2 = smgr->getMesh("Sky.obj"); ISceneNode* node2 = 0; if(mesh2) { node2 = smgr->addOctreeSceneNode(mesh2->getMesh(0), 0, -1, 1024); //node2 = smgr->addMeshSceneNode(mesh2->getMesh(0)); node2->setMaterialFlag(EMF_LIGHTING,false); } 我想知道为什么会发生这种情况,以及如何解决这个问题。

在Irrlicht中查找命名骨骼的端点

我正在做一个坦克游戏,将有多个坦克。 我希望能够使用骨骼来定义武器位置,我可以在建模程序(Blender准确地)中添加它。 所有的坦克都会有一个叫做“身体”的骨头和一个名为“炮塔”的骨头,然后命名为Cannon0和PickupGun,这些炮弹将被附加到炮塔骨头上。 有什么方法可以find我select的骨骼的绝对终点位置?

管理许多dynamic对象的绘制调用

我们正在使用Irrlicht开发一个游戏(跨平台)。 游戏中有许多(约200-500)个dynamic物体在游戏中飞行。 这些对象大部分都是静态网格物体,并由20-50个独特的网格物体构建而成。 我们为每个对象创建了独立的场景节点,并引用了它的网格实例。 但是产量非常出乎意料。 菜单屏幕:(150 tris – 为了向您展示2台testing计算机的全速渲染性能)a)具有1GB的NVidia Quadro FX 3800:OpenGL上的1600 FPS DirectX和2600 FPS b)配备Geforce 9400M 256MB:260 FPS的Mac Mini OpenGL的 现在在testing水平内的游戏(160个dynamic对象,数量约为10K tris):a)带有1GB的NVidia Quadro FX 3800:OpenGL上的45 FPS DirectX和50 FPS b)带有Geforce 9400M的Mac Mini 256MB:45 FPS OpenGL 很明显,我们没有网格批量渲染的选项,因为大部分对象都是dynamic的。 而一个大的静态地形已经在单一的网格缓冲区中。 要添加更多的信息,我们使用一个2048 png的纹理来处理大多数dynamic对象。 而我们的碰撞检测和其他计算几乎不会对FPS产生任何影响。 所以我们了解了我们制作的平板电话吃掉了所有的FPS。 有没有办法我们可以优化渲染,或者我们错过了什么?

在Mac中使用ndk编译irrlicht android时出错

我是新来irrlicht,我已经开始与irrlicht Android端口。 我对android.mk文件做了如下修改: LOCAL_CFLAGS := -O3 -DANDROID_NDK -DDISABLE_IMPORTGL -I./../include/ -I./include/ -I/documents/karthik/android/android-ndk-r9/platforms/android-18/arch-arm/usr/include LOCAL_LDLIBS := -L/documents/karthik/android/android-ndk-r9/platforms/android-14/arch-arm/usr/lib/libGLESv1_CM.so -ldl -llog -L/documents/karthik/android/android-ndk-r9/platforms/android-14/arch-arm/usr/lib/libGLESv1_CM.so 我已经尝试编译在terminal使用ndk-build编译irrlicht android。它首先显示以下错误: In static member function 'static void irr::os::Printer::log(const c8*, irr::ELOG_LEVEL)': error: format not a string literal and no format arguments [-Werror=format-security] In static member function 'static void irr::os::Printer::log(wchar_t const*, irr::ELOG_LEVEL)': error: format not a string literal and […]

错误:'struct RakNet :: SocketDescriptor'没有名为'socketFamily'的成员

当我运行我的客户端代码我得到这个错误我使用代码::块和即时linux系统在教程,我按照代码工作没有任何错误我包括在项目中的文件 #include "MessageIdentifiers.h" #include "RakPeerInterface.h" #include "RakNetStatistics.h" #include "RakNetTypes.h" #include "NetworkIDObject.h" #include "NetworkIDManager.h" #include "BitStream.h" #include "RakSleep.h" #include "WindowsIncludes.h" #include "PacketLogger.h" the error: 'struct RakNet::SocketDescriptor' has no member named'socketFamily'| in the line 39 in the client.cpp file client.h文件 #include "raknetincludes.h" #include "irrlicht.h" class Client { private: int numSockets; int numIPs; int maxPlayers; unsigned char packetIdentifier; […]