Ogre,Blender笔记

 1、一个空项目,在项目属性页如果看不到“C/C++”调试选项,那是因为没有在项目里面建立后缀为“h”的头文件以及后缀为“cpp”的代码文件。

 2、如果是在编译正确之后、链接的时候,发生错误,比如cannot find symbol 。。。,有可能是项目属性里面没有添加相应的 lib 后缀文件。第7课里面需要在“连接器》附加依赖项”里面添加两行:
CEGUIBase.lib
OgreGUIRenderer.lib

  3、如果在官方主页找不到OgreXmlConverter.exe,那么可以去SourceForge.net搜:
OGRE (O-O Graphics Rendering Engine) 或者OGE
找到OGRE (O-O Graphics Rendering Engine)这个大类之后,点击下载按钮,然后来到详细下载目录,在目录里面,可以看到OgreCommandLineTools_v1.4.7.msi ,OgreXmlConverter.exe就包含在里面,当然,OgreSDKSetup1.4.7_VC80p1.exe的下载链接也在这个目录里面。

 4、在导出模型之前,记得 Ctrl + N(清理法线),否则在Ogre里面模型会变成一团乱麻。另外,镜像过的物体也要崩塌为纯网格。

 5、

如果出现如下情况:
OGRE EXCEPTION(5:ItemIdentityException): Cannot locate a resource group called 'ET' for resource 'brush.png' in ResourceGroupManager::openResource at c:/ogrenew/ogremain/src/ogreresourcegroupmanager.cpp
解决方法:
resources.cfg 文件最后面,添加如下两行(注意,第一行必须有):
[ET] 
FileSystem
=C:/ogrenew/Samples/Media/ET

 

6、如果安装的是sdk版,并且是用Code::Blocks编译的版本,在Ogre官方wiki的高级教程3编译的时候,会出现缺少CEGUIBase.lib和OgreGUIRenderer.lib的情况,没关系,直接把bin目录的CEGUIBase.dll和OgreGUIRenderer.dll添加到编译选项中来,就算是dll也没关系,照样可以当lib用,具体方法如下:

在Code::Blocks右边的工程上点右键,选择属性,然后是Build targets(编译目标),再然后是Build options,看到Linker settings没?继续点,看到add了吧,点它,出来文件浏览对话框,定位到响应的dll就OK了,我的目录是E:/ogre/bin/release,里面有上面提到的两个dll。

 

7、main 启动 appapp 包含 createScene 以及其他必要变量,并启动 listener,所有变量最终都传入listener用于驱动游戏。

8、createScene做什么:设置光照,利用场景管理器创建物体,创建节点,并将已经生成的物体挂接到节点上,最后把节点和物体都传给listener。

9、listener做什么:让物体动画,让节点旋转或者位移。

10、如何在游戏里面显示自己的信息:点击 ★这里

11、Ogre教程 Intermediate Tutorial 1中级教程一),其中关于动画部分比较难理解,经过我自己改进的版本 ★在这最起码我自己看得懂,哈哈。

12、IntermediateTutorial4Source如果不能正常编译,那么可以尝试把如下代码:

  1. #include <CEGUI/CEGUI.h>
  2. #include <OgreCEGUIRenderer.h>
  3. 改为:
  4. #include <CEGUI/CEGUISystem.h>
  5. #include <CEGUI/CEGUISchemeManager.h>
  6. #include <OgreCEGUIRenderer.h>

13、Bldner 如何导出Ogre的Mesh以及Skeleton文件?

这里下载py脚本,放到blender的脚本目录,然后在blender里面 点击updata 脚本列表

14、如果下面的quad为0,0,0,则被挂接的物体不随父物体转动

Ogre::Quaternion quad(0,0,0);///这里应该为Ogre::Quaternion r(Quaternion::IDENTITY)或者类似的值,看老外的
entBody= mSceneMgr->createEntity("body0", "Body0.mesh");
entFoot->attachObjectToBone("Bip01",entBody,quad,Vector3(-10,75,0));

15、位移量乘以方向=实际的运动结果

mCamNode->translate(mCamNode->getOrientation() * transVector * evt.timeSinceLastFrame);

 

16、Ogre的 Basic Tutorial 7 教程里面,源代码部分BasicTutorial7Source 有个地方把 RttTex  写成 R2TTex,能正常编译,但是会造成运行时错误,(难道是老外的错别字?),把 R2TTex 改成 RttTex 就行了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章