經過前面針對OpenGL的一些特性的學習,越發覺得要學的更多,相關如LOD,各種陰影實現,場景管理如BSP與Octree等以及還沒聽過的各種的實現.有感自學的進度太慢,並且在做一些小DEMO時,心中不由的想到各種想要的大場景的實現.,故想到直接從3D引擎根據代碼學習,然后就開始在各大網站上翻看各種開源引擎,主要是根據如下幾條來選擇1.開發語言最好是C#,畢竟C#的組織性強,閱讀有條理,並且基於面向對象的語言也更適合團隊開發.2要有上面如模型,地面的LOD實現,以及相應的場景管理功能,各種陰影的實現.3最好包裝的OpenGL的實現,如果OpenGL與D3D都包含就更完美了.4有點名氣,可能覺得有點俗,不過主要是因為越有名氣,對應的資料會越多,能更好的吸取前輩們的經驗.
基於這上面幾占,在這個游戲引擎列表里,可以看到可供選擇的比較多.其實最開始我選擇的是卡馬克大神的雷神3引擎以及Ogre的net版MOgre,不過前者主要是基於C語言開發,效率肯定是牛B哄哄的,用來快速學習不好掌握.而MOgre看簡介發現,MOGRE (Managed OGRE) is an advanced .NET wrapper for OGRE.這就是說,是在C++上進行的包裝,實現還是在對應的Ogre上面(就如OpenTK與OpenGL).然后在那引擎列表里又找了一些並下載試用,終於發現一個名聲不顯的引擎Axiom,大家可能要說,這不是不滿足第4點嗎,且看對Axiom的介紹.
The core of Axiom is a port of the very popular OGRE graphics engine, which was chosen based on its clean object-oriented design, powerful features, and flexibilty. The original port was carried out by Leedgitar, the project founder.
看到了沒,Axiom是Ogre的net實現版,不同於MOgre,他是把Ogre里的核心代碼都用C#來實現的,其中針對OpenGL的包裝用的是開源項目OpenTK(后調試好像還是用的Tao框架),也就是我以前Demo用的,並且包含了針對D3D的渲染,用的好像是SharpDX或是SlimDX,MS自己的Managed DirectX已經被MS放棄更新了.前面說了名氣其實就是為了學習資源,那Axiom的學習資源多不,不多...果然和我想的一樣,名氣越多,資源越多.但是架不住有個好爹,Ogre的資料多,資料吻合度可以這樣說,在看Axiom的中心源代碼時,或是生成,組織,利用如場景,資源等代碼,二者的代碼幾乎一樣.這么說,你看用MOgre講解的Demo,里面的代碼幾乎就和Axiom的Demo過程一樣.
Axiom是LGPL授權,意思可以有條件的商用,並且支持Mono開發.可以用於Windows,Linux,Android,iPhone,Windows Phone,XNA,幾乎對主流平台都提供支持.支持各種紋理以及常用的圖像格式,支持Cg與HLSL着色器語言,支持頂點/片斷着色器.動畫支持關鍵楨動畫,骨骼動畫,場景管理支持如BSP,Octrees.支持Ogre .mesh 文件格式並可以預加載LOD層次,相關的建模,蒙皮操作.等一系列高級特效.還有非常強大的插件系統.詳細介紹請看官網Axiom.
請注意,Axiom的源碼存放在 http://svn.axiom3d.net/svnroot/axiomengine/trunk,別的一些開源項目網站多存放的是Axiom的編譯后的DLL.