《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 三維渲染引擎編輯器的研究
三維渲染引擎編輯器的研究
國外電子元器件
況衛飛,彭四偉
摘要: 網絡游戲的發展日新月異,這離不開游戲引擎,而游戲引擎中最重要的莫過于渲染引擎,因為它直接影響游戲的畫面質量和視覺效果。渲染引擎編輯器是針對某款渲染引擎而開發的工具,通過渲染引擎編輯器,開發人員無需了解渲染引擎的內部構架、工作原理,無需編碼便可創作出效果良好的場景供三維應用程序使用,大大提高了開發效率,節省了開發成本。
Abstract:
Key words :

1 引言

近年來,網絡游戲的發展日新月異,這離不開游戲引擎,而游戲引擎中最重要的莫過于渲染引擎,因為它直接影響游戲的畫面質量和視覺效果。渲染引擎編輯器是針對某款渲染引擎而開發的工具,通過渲染引擎編輯器,開發人員無需了解渲染引擎的內部構架、工作原理,無需編碼便可創作出效果良好的場景供三維應用程序使用,大大提高了開發效率,節省了開發成本。

2 OGRE簡介

開源圖形渲染引擎OGRE(Open-source Graphics Rendering Engine)是一款開源的、面向對象的三維圖形渲染引擎,由一個小型核心團隊編寫和維護,并依靠其不斷成長的社區提供支持。由于是一款開源引擎,所以得到各種團體組織的改造和擴充,從而能夠適應不同的應用領域并擁有更強大的功能。
OGRE的特點有:平臺無關性,它支持Windows和Linux以及Mac OSX平臺;可擴展的例子框架,使程序運行更快更簡單;接受靈活的網格數據格式。可以從許多三維建模工具中導出模型,包括Milkshape3D,3D Studio Max,Maya,Blender和Wings3D;強大的材質聲明語言允許在代碼外維護材質資源,支持多材質技術,允許根據顯卡能力的不同設計不同的材質,OGRE會自動選擇當前顯卡支持的使渲染效果最好的技術;高度靈活的場景管理機制,由使用者決定采用何種場景類型,并允許使用者通過插人開發的子類來獲取對場景的完全控制,場景圖結構化,允許實體對象附加在場景節點上并隨節點移動。

3 主要模塊介紹

(1)CAELUM它是OGRE的第三方插件,其目標是生成似照片般效果的大氣場景,其中包括天空顏色,云和各種氣象效果(雨,雪等),能繪制太陽、月亮(月相)、星空,并能根據當前時間和攝像機角度實時更新這些對象在場景中的位置和狀態。
(2)ETL可編輯地形管理器它是OGRE的第三方插件庫,它能夠基于高位圖來管理和展示地形,可以作為地形場景管理工具使用,但其更大的優點是能夠編輯地形,通過它可以實時的改變或設置地形的高度。該捕件庫的設計非常精巧,各個組成部分相互獨立,所以使用者可隨機選擇需要的部分,而不會因為某些部分的缺失而影響整體。

   (3)PagedGeometry分頁幾何體引擎它是OGRE的第三方插件,用來優化渲染覆蓋無限區域的巨大數量的微小實體。該引擎非常適合用來渲染戶外場景。如擁有成千上萬顆樹的茂密森林。分頁幾何體引擎與平面實體引擎相比具有很多優勢,其中最重要的是速度,如果細節層次使用得當,由分頁幾何體管理的戶外場景比平面實體渲染速度要快100倍。另一個優勢是分頁技術的使用,即只有當實體需要立即被顯示在場景中時,才會將該頁的實體載人內存,這樣就可以幾乎無限放大虛擬場景。
    (4)Hydrax它也是OGRE的第三方插件,提供一個易用的庫用來渲染漂亮的水紋場景。Hydrax提供的所有渲染效果都是可配置的,包括深水效果、平滑過渡效果、泡沫效果及水下光線效果等,這些效果還可以根據需要實時變化。

4 系統設計與實現
    系統結構如圖1所示。此編輯器是基于插件的針對O-GRE的所見即所得編輯器,通過它能夠快速構建一個場景模型,也可以把這些場景作為內容載入OGRE應用程序。

4.1 插件技術原理
    插件的本質在于不修改程序主體(平臺)而對軟件功能進行擴展與加強。當插件的接口公開后,任何公司或個人都可以制作自己的插件來解決一些操作上的不便或增加新的功能,實現真正意義上的“即插即用”軟件開發。“平臺+插件軟件”結構是將一個待開發的目標軟件分為兩部分,一部分為程序的主體或主框架,可定義為平臺,另一部分為功能擴展或補充模塊,即定義為插件。
4.2 插件的實現方法
    該編輯器的插件實現方法是在框架代碼中創建接口,這些接口使框架與動態庫解耦。插件提供接口的實現。把插件與動態鏈接庫區分開是因為它們的加載方式不同:程序不會直接鏈接插件,而是在某些目錄下查找,如果發現便按照配置文件中定義的方式進行加載。
    插件實現過程涉及很多類。下面僅介紹5個類CBaseEditor,CBaseEditorFactory,OgreEditorRoot,CTerrainEdi-tor,CETLEditorFactory,并列出部分代碼闡述捕件實現過程,見圖2。

    CBaseEditor是定義的接口,由其派生的CTerrainEditor是接口的實現,即插件。當點擊主界面的ETL按鈕時,O- greEditorRoot能夠監聽到點擊該按鈕事件的發生,隨后調用dllStartPlugin函數。dllStartPlugin函數負責調用創建 CTer-rainEditor對象的工廠,由工廠(CETLEditorFactory)編輯器對象(CTerrainEditor)實例。

  CTerrainEditor對象創建完成后,dllStartPlugin會向OgreEditorRoot注冊該編輯器對象實例。 OgreEditorRoot由Singleton繼承而來,為保證程序中只存在一個實例,OgreEditorRoot負責插件的載入和卸載,并提供 RegisterObjectName函數,供編輯器插件注冊使用。


5 結束語
    開發三維游戲或其他三維應用程序是非常耗費人力的工作,利用此編輯器可快速構建三維場景供三維應用程序所用,提高開發效率,降低開發成本。基于平臺加插件的設計方式能夠在不修改編輯器平臺的情況下,方便擴展編輯器功能。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 成a人v| 久9精品视频| 欧美成人影院免费观 | 午夜影院黄色 | 国产综合精品一区二区 | 中文字幕一区二区三区久久网站 | 国产高清天干天天视频 | 亚洲欧美在线观看播放 | 成人精品一区二区久久 | 亚洲国产网址 | 欧美一级片在线视频 | 91精品欧美一区二区综合在线 | 一级片视频在线 | 欧美高清一区 | avhd101天天看新片 | 欧美jizz18性欧美 | 八戒午夜精品视频在线观看 | 国产手机在线小视频免费观看 | 久久精品国产亚洲片 | 怡红院免费播放全部视频 | 亚欧成人毛片一区二区三区四区 | 午夜在线播放免费人成无 | 国产视频高清在线观看 | 国产成人a毛片在线 | 好吊操这里只有精品 | 性刺激免费视频观看在线观看 | 日韩一区二区天海翼 | 久久久久久久久久综合情日本 | 久久6视频| 久久国产美女免费观看精品 | 日韩在线国产 | 怡红院视频在线观看 | 91精品观看91久久久久久 | 久操中文在线 | 成人午夜亚洲影视在线观看 | 久久黄色精品视频 | 一级一黄在线观看视频免费 | 欧美jizzhd欧美精品 | 日韩精品在线免费观看 | 久久精视频 | 亚洲精品视频网 |