龍芯平臺上構建開源3D遊戲引擎OGRE指南
http://www.loongson.cn/news/company/512.html
初識OGRE
OGRE,是Object-Oriented Graphics Rendering Engine(面向物件的圖形渲染引擎)的縮寫,是一款開源的跨平臺的圖形渲染引擎。引擎通過採用面向物件的設計方式,把3D圖形API和作業系統介面的差別抽象為通用介面,將大量的上下文相關狀態和操作封裝起來,開發者可以用通用且簡明易懂的程式碼在不同平臺下、使用不同3D API介面進行操作,從而減少了不必要的重複工作。
ogre也有食人魔的含義,所以OGRE選擇了食人魔的頭像作為自己的形象標識。
今天我們就從OGRE原始碼開始,逐步在龍芯3A2000/3A3000主機、Fedora21社群作業系統的平臺上構建OGRE。
下載OGRE原始碼
OGRE是一個開源引擎,將引擎原始碼開放在bitbucket,首先從bitbucket上克隆原始碼,執行如下命令:
cd ~
hg clone https://bitbucket.org/sinbad/ogre
然後克隆OGRE所需的依賴庫,執行如下命令:
hg clone https://bitbucket.org/cabalistic/ogredeps
上述命令要求您的電腦中安裝了mercurial工具。如果您的電腦中沒有預裝mercurial,可以通過如下命令快速安裝:
sudo yum install mercurial
從原始碼構建OGRE
安裝cmake-gui
構建OGRE需要cmake-gui工具的支援,首先安裝cmake-gui工具,命令如下:
sudo yum install cmake-gui
構建OGRE依賴庫
OGRE的構建依賴於一些第三方庫,開發者可以選擇通過手動安裝或者採用OGRE提供的依賴庫原始碼整合包進行安裝。依賴庫說明如表中所示:
依賴庫 | 詳細資訊 | 備註 |
freetype | http://www.freetype.org | 必備 |
boost-date-time | http://www.boost.org | 推薦 |
boost-thread | http://www.boost.org | 推薦 |
nvidia-cg-toolkit | http://developer.nvidia.com/object/cg_toolkit.html | 推薦 |
zlib1g | http://www.zlib.net | 推薦 |
zzip | http://zziplib.sourceforge.net | 推薦 |
cppunit | http://cppunit.sourceforge.net | 可選 |
doxygen | http://doxygen.org | 可選 |
xt | x11 toolkit | 可選 |
xaw7 | X11 Athena Widget | 可選 |
xxf86vm | X11 XFree86 video mode extension library | 可選 |
xrandr | X11 RandR extension library | 可選 |
glu | OpenGL Utility | 可選 |
OIS | http://sourceforge.net/projects/wgois | 可選 |
POCO | http://pocoproject.org | 可選 |
TBB | http://www.threadingbuildingblocks.org | 可選 |
本文中將採用編譯OGRE提供的依賴庫原始碼包的方式構建OGRE的依賴庫,執行命令如下
cd ogredeps
mkdir build
cd build
cmake ..
make
make install
構建OGRE
編譯安裝完OGRE的依賴庫後,我們開始編譯安裝OGRE,命令如下:
cd ogre
mkdir build
cmake-gui&
進入Cmake-gui後,執行如下操作:
配置原始碼目錄為YOUR_PATH/ogre,
配置構建目錄為YOUR_PATH/ogre/build
點選Configure
將OGRE_DEPENDENCIES_DIR項設為YOUR_PATH/ogredeps/build/ogredeps
點選Configure
如果產生錯誤則按照提示解決即可,比如缺少Xaw庫,執行如下命令:
sudo yum install xaw-devel
再次Configure,直到沒有錯誤並進入Build選項,如下圖所示
OGRE的Build選項較多,這裡只做一些簡單的介紹:
OGRE_BUILD_COMPONENT_XXX選項控制對應的XXX元件是否會被新增到OGRE中
OGRE_RENDERSYSTEM_XXX選項控制OGRE可以選用的渲染系統,在本文中採用了GL作為渲染系統,開發者也可以選擇自己想要使用的渲染系統。
OGRE_INSTALL_DOCS選項控制是否要生成OGRE文件,需要提前安裝doxygen,安裝命令如下:
sudo yum install doxygen
OGRE_INSTALL_SAMPLES選項控制是否要生成OGRE的示例
選擇完成後,點選Generate
操作成功後退出cmake-gui,回到命令列操作,執行如下命令:
cd build
make
make install
至此,OGRE在龍芯3A2000上的構建和安裝就完成了,讓我們去看看安裝成果吧,執行如下命令:
#檢視標頭檔案
ls /usr/local/include/OGRE
#檢視庫檔案
ls /usr/local/lib/libOgre*
#檢視OGRE資原始檔
ls /usr/local/share/OGRE
如果檢視到了想要得到所有東西,恭喜你,OGRE已經安裝成功了,讓我們盡情暢遊OGRE吧!
暢遊OGRE
讓我們一起進入OGRE的世界吧,開啟OGRE例項瀏覽器的命令如下:
cd ogre/build/bin
./SampleBrowser
配置好相關選項後就可以進入OGRE的例項瀏覽器了,下面有一些例項的截圖分享給大家。
New Instances示例
Ocean示例
Character例項
這樣OGRE構建和預覽就完成了,開發者可以仔細研究一下每個例子的技術和相關選項的配置,一定也能有所收穫。
總結
OGRE作為一個被應用與成功的商業遊戲的渲染引擎,在龍芯平臺上構建成功,給了開發者更多的圖形開發選擇。但由於筆者採用了整合顯示卡,目前一些示例的幀數有些偏低,但隨著龍芯晶片的發展和開發者使用更好的顯示卡,一定可以獲得更好的顯示效果,做出更炫更酷的效果。