【转载】四大开源3d游戏引擎探究
原文地址:http://blog.csdn.net/darrenc/article/details/3929920
本人水平有限,只對于長久以來研究的幾個經典3d游戲引擎的設計思想、程序架構和應用行深入剖析的結果與游戲開發同行分享,文檔有不妥之處請指出,期待我們的共同進步。
引擎名稱:
1. orge(鬼怪)
2. Irrlicht(鬼火),
3. Nebula(星云)
4. klayGE(。。)
前言:目前,開源3d游戲引擎已經趨近于商業化引擎標準,許多引擎在圖形渲染,內存分配,網絡通訊方面甚超越了許多商業引擎。這些開源引擎的共同特點是這樣的:
(1)引擎框架:多數的3d引擎框架為樹形結構。框架最為清晰、經典的游戲引擎是Nebula星云引擎。父子節點構成了整個框架的層次,首先nebula有一個叫nRoot的類,它是所有對象類的基類,nRoot中有一個名字變量,有一個parent指針指向它的父結點,
還有一個childlist鏈表保存它所擁有的子結點.因為結點也是nRoot類,所有結點的子結點中也可能有子結點,
這樣就形成了一個樹形目錄結構.nRoot中有一個nRoot* Find( const char* name )方法,功能很簡單,就是遍歷自已的
childlist鏈表對比每一個nRoot結點對象的名字,如果相同就返回些對象的指針.。其他引擎也有類似的框架,比如orge的root根節點下面子節點代表每一個功能模塊。
(2)內存管理:多數采取引用計數模式(引用計數為每當初始化一個指針,在函數運行完畢后自動釋放,并且把這個過程進行計數)這樣的好處在于對于項目的可控性很有保障,避免內存泄漏,重命名對象等。但是這種
(3) 圖形處理:多采取三個經典模塊:場景管理器,資源管理器,渲染器。這種劃分模式以orge鬼怪引擎和irrlicht鬼火引擎最為典型。先進的引擎還配有 一套專門從事對于圖形編程的腳本語言。比如orge內置一套腳本,可以控制場景管理器,資源管理器的圖形參數及圖形算法進行編輯,這樣可以跳過c++繁冗 的程序編寫過程和漫長的項目編譯時間而直接運行察看修改后程序的效果。當然,這種腳本語言模式有些效仿目前最著名的商業游戲引擎unreal3虛幻3引擎。關于場景的圖形算法大多數采用8叉樹與bsp(二叉空間分割)方法,支持大游戲場景的局部渲染功能。
(4)跨平臺性:
本文要介紹的4個3d引擎都具有跨平臺開發性能,一般可以支持多種操作系統和開發工具,比如windous下的vs.net,linux下的codewarrior等。 而且像irrilicht鬼火這種引擎還支持多種語言,vc,vb等,但是目前版本其本身并無腳本可用。這些引擎還支持多種底層圖形api,比如 dx,opengl等。開發者可以隨意選擇熟悉的3d渲染api來驅動游戲程序。注意:KlayGE是本文唯一入選的國產引擎,但該引擎沒有支持多api 渲染機制,底層圖形方面只是用opengl實現。
(5)網絡部分功能較差:目前說到的幾個引擎在網絡方面都不是很強大,比如著名的orge引擎就是專注的圖形引擎,不具備服務器-客戶端的網絡工作模式。目前,只有北京涂鴉產的起點引擎在網絡方面在國產引擎中可以算是比較出色。值得一提的是在網絡方面比較強大的商業引擎目前最火的就是bigworld,如果利用適當的渲染算法該引擎可以輕松支撐上百人的在線pk。
(6)可接收多種 3d美術資源,比如鬼火引擎可以接受Maya,3DStudio Max,COLLADA,DeleD,Milkshape,Quake 3 levels,Quake2 models,DirectX,Pulsar,My3DTools,FSRad以及Cartography Shop工具導出的資源。但是orge可接受的種類要更多。支持骨骼動畫和關鍵貞動畫兩種經典動畫形式。
好了,目前我們基本了解了市面上著名的3d引擎的基本共同點,那么下面就列舉以下他們的特性及優缺點。
1.Orge鬼怪:
優點:
(1)強悍的圖形渲染質量。該引擎的粒子系統很強,制作的光影,霧化效果極佳,圖形方面全面超過torque,朱比特等普通商業引擎的能力。
(2)高效的圖形編程機制。內置的特殊腳本語言,并且具有可視化的編輯工具,可以直接進行外部數據修改,內部調試。
缺點:
(1)網絡部分的空白
(2)高度計算量和高精度的渲染模式,使得內存和顯存的壓力都很大,做出的程序整體效率不高。沒有相關隨著硬件加速調整渲染算法和參數的api。
2.Irrlicht鬼火:
優點:
(1)精悍的引擎框架,和orge及其相似。
(2)高質量的圖形渲染,雖然沒有orge的質量優越,但是比起一般的商業引擎仍然略勝一籌。
(3)清晰單一的c++語言實現使得引擎沒有繁冗龐大的外部腳本編譯器。
(4)支持根據硬件加速調整渲染模塊的參數和算法的機制。整體程序會跑得很快流暢,但是畫質降低。犧牲畫質來保證性能。
缺點:
(1)缺乏高效開發的腳本。無法像orge那樣高質量高效率的進行圖形編程。
(2)相對其它游戲引擎鬼火的框架可擴展性不強,設計模式相對單調而簡潔。
(3)支持圖形算法單一,比如骨骼動畫多貼圖需要很麻煩的過程。
總結
以上是生活随笔為你收集整理的【转载】四大开源3d游戏引擎探究的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 「达人分享」四分体出现在什么时期
- 下一篇: itext使用包含特殊字符的字体——制作