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 就行了

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