本文介紹從哪兒開始學習OGRE(Object-Oriented Graphics Rendering Engine的簡稱,又叫做OGRE 3D),如何在網上找尋OGRE的學習資源。
首先是wikipedia的介紹:
http://en.wikipedia.org/wiki/OGRE
官方網站:
官網介紹:http://www.ogre3d.org/about
特性列表:http://www.ogre3d.org/about/features
開發者對OGRE評價:http://www.ogre3d.org/about/testimonials
在這里下載OGRE:
http://www.ogre3d.org/download/sdk
目前最新穩定版為1.9,上一個穩定版為1.8.1,可以兩個都下下來,下載下來的.exe文件其實是個壓縮包,直接解壓。OGRE SDK文件夾下有個文件OgreSDK_vc10_v1-9-0/Docs/CodingStandards.html,建議首先讀一下,這里講了OGRE的給類命名的約定等,我簡單列一些:
- 每個類的聲明和實現都放在單獨的源文件中,className.h里聲明,className.cpp里實現,除少數類外;
- OGRE的所有東西都放在“Ogre”命名空間;
- 盡量使用STL的容器和算法(所以OGRE很依賴STL);
好了,看完介紹,可以動手了,官網有Tutorials:
http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Tutorials
Basic Tutorials簡單講了OGRE的各個方面:camera, light, shadow, sky, fog, input(key and mouse)等等,大概都是一步步教你做,然后簡單講解原理,建議全看,邊看邊跟着做;Intermediate Tutorials和In Depth Tutorials有一定深度,建議對OGRE有初步經驗之后再看。
OGRE wiki有更多的資源:
http://www.ogre3d.org/tikiwiki/tiki-index.php
一旦開始寫代碼,API參考是必不可少的(OGRE SDK 包里有離線的,也可以從源碼用Doxygen自己生成API文檔):
http://www.ogre3d.org/docs/api/1.9/
當你遇到什么特殊問題,可以去OGRE論壇看看,很可能別人問過這個問題了,也可以發帖問,不要擔心自己的英語不好,老外會很熱情的給你解答的:
在下載的OGRE SDK包里面,有一個.sln文件,可以用Visual Studio打開,那是OGRE的example,里面的代碼對入門者是很好的參考,編譯SampleBrowser項目后運行結果截圖如下:
另外有兩本英文書籍,可以在新浪愛問共享資料上下載(我發現好多書都能從那里找到):
Ogre 3D 1.7 Beginner's Guide (Felix Kerger, 2010)
OGRE 3D 1.7 Application Development Cookbook (Ilya Grinblat, Alex Peterson, 2012)
第一本書我讀了大部分了,內容形式是那種舉例子教你做的,例子都較為簡答(跟Basic Tutorials一個級別),適合入門,但OGRE背后的原理涉及很少;第二本是也是以應用為主的。怎么說呢,這兩本書可以用來入門吧。
Pro OGRE 3D Programming是另一本OGRE的書,但太舊了,不建議看。
《OGRE 3D游戲開發框架指南》(邸銳,2010)是我能找到的為數不多的中文書籍,我沒看,因為我看目錄也是以例子為主的。
當你對OGRE有了更多經驗之后(能構建需要的場景,添加鼠標鍵盤響應,幀事件),你可能想了解OGRE背后的東西,比如材質腳本怎么寫,着色器腳本怎么寫等等,可以看看OGRE manual:
http://www.ogre3d.org/docs/manual/manual_toc.html#SEC_Contents
OGRE SDK 1.8.1包里也有。
在更深入探索OGRE之前你可能需要了解一下設計模式(得益於此,OGRE才有這么優美的設計)、STL標准庫、C++模板等。哦,還有圖形學相關理論,我推薦浙江大學的一個圖形學課程的網站,看看上面給出的上課PPT之后你會對圖形學有大致了解:
http://staff.ustc.edu.cn/~zhuang/acg/index.htm
剩下的估計是看源代碼了吧。