編譯 Ogre3D Next 引擎
·
4min
·
chchwy
Table of Contents
本文紀錄我編譯 Ogre Next 引擎的方法跟步驟。
Ogre3D 2.x 分支已經改名叫 Ogre-Next,跟原本的 Ogre3D 1.x 版本引擎做出區隔。這篇文章裡提到的 Ogre 都是指 Ogre-Next。新舊版引擎的比較。
取得原始碼
目前 Ogre3D 原始碼放在 Github 上,需要下載兩份 source code:
- Ogre3D 引擎本體 https://github.com/OGRECave/ogre-next
- 第三方依賴函式庫 https://github.com/OGRECave/ogre-next-deps
把兩個 repo 放在同一層目錄下,比如像這樣:
C:/OgreSDK/ogre
C:/OgreSDK/ogredeps
安裝 CMake 建構系統
Ogre 用的建構系統是 CMake,這是我第一次用 CMake,花了一些時間才搞懂用法。
CMake 本身並不直接編譯程式。它的主要用法讓開發者寫 CMake 腳本(通常叫CMakeLists.txt),然後依據腳本生成適合各平台的專案檔案。例如在 Windows 上會生成 Visual Studio 專案,在 Mac 上則會生成 Xcode 專案。
寫這篇文章的時候我安裝的是 CMake 3.17。到 CMake 官方網站下載安裝就好了。
編譯依賴函式庫
首先,我們需要先編譯 ogre-next-deps
,這裡面都是 Ogre3D 用到的第三方函式庫。
打開 CMake-GUI
- Where is the source code 這一欄填寫 Repo 的目錄位置
- Where to build the binaries 這一欄通常按照慣例,會在原始碼目錄下加一層 build
接著以下步驟
- 按 Configure,選擇編譯器版本
Visual Studio 16 2019 Win64
- 再按 Generate ,產生 VS 專案檔
- 按 Open Project 打開 Visual Studio solution
- 開啟 Visual Studio 之後,編譯
ALL_BUILD
專案,Debug/Release 都要 - 接著單獨編譯
INSTALL
專案,在 INSTALL 上按右鍵 Build,同樣 Debug/Release 都要
這樣子第三方函式庫就算編譯完成了
編譯引擎本體
接著編譯 Ogre 引擎本體。跟前一步一樣,打開 CMake GUI
- Where is the source code 填 ogre 引擎的原始碼目錄
- Where to build the binaries 往下加一層子目錄 build
按下 Configure 按鈕之後呢,應該會跳出一些錯誤,別擔心,這是因為 CMake 無法定位前一步編譯的依賴庫的位置,藉由設定 OGRE_DEPENDENCIES_DIR 這個欄位告訴 CMake 依賴庫的位置:
- OGRE_DEPENDENCIES_DIR 欄位填入
C:/OgreSDK/ogredeps/build/ogredeps
- 渲染引擎可選用 DirectX 或者 OpenGL3+,兩者都勾也行
- OGRE_BUILD_SAMPLES2 是 Ogre 2.1 版的官方範例集,勾起來
- 勾選 SSE2 硬體指令集,加速數學運算
OGRE_UNITY_BUILD
可以大大縮短編譯的時間,建議勾選
- 再 Congifure 一次,應該就沒有錯誤訊息了
- 按下 Generate 產生 Ogre.sln
- Open Project 打開 Visual Studio
- 編譯
ALL_BUILD
專案,Debug/Release 都要 - 編譯
INSTALL
專案,同樣 Debug/Release 都要
到此為止全部完成,挑選任一 Sample 執行即可
下圖是我成功執行 Ogre-Next 官方範例 Forwrad3D 的畫面:
附註:
我寫這篇文章時的開發環境
- 作業系統 Windows 10 Home
- 編譯器 Visual Studio 2019 Community
- 版本控制系統 git
- 建構系統 CMake 3.17