2016年10月2日 星期日

3D遊戲程式設計(2):ogre tutorial

接下來就開始進行一連段OGRE的教學,跟著教學順便發現一些問題然後把它記下來以免以後還會遇到。

首先是跟著範例在做加入camera跟viewport時,如果一開始在tutorialapplication.h加入override createCamera()與createViewport(),如果宣告後再tutorialapplication.cpp沒有完整定義內容的話,OGRE會期待可以初始化camera導致出現exception:don't have ogre_main.dll這個錯誤訊息,所以千萬要記得宣告完之後一定要把定義也寫完,而不要只有先宣告然後內容定義空白著。



使用課堂提供的範例PROJECT時,PROJECT是把整個OGRE LIB包道專案中,然後vc的PROJECT放在PROGRAM資料夾,打開來執行時跳出ERROR,WINDOWS VC 跳出的ERROR
First-chance exception at 0x75dc9617 in OgreGame.exe: Microsoft C++ exception: Ogre::FileNotFoundException at memory location 0x001bf084..
First-chance exception at 0x75dc9617 in OgreGame.exe: Microsoft C++ exception: Ogre::FileNotFoundException at memory location 0x001bf4bc..

看不出來問題在哪裡,看一下編譯過程的LOG 發現是
plugins.cfg not found, automatic plugin loading disabled.
這個問題,於是上網查了資料,這是因為VC的work directory設定位置不正確,
於是要把Project Properties->Configuration Properties->Debugging->Working Directory.
Visual Studio sets this to $(ProjectDir). You will want to set this to $(TargetDir).

這兩個的差別是ProjectDir是專案所在的資料夾所以就是第一層的資料夾,所以看不到plugin.cfg,它的位置是在bin\Release,相對的TargetDir是目標資料夾,也就是我們設定exe生成的位置,剛好就是bin\Release,所以改完之後就可以成功編譯沒有問題了

沒有留言:

張貼留言