《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 三維渲染引擎編輯器的研究
三維渲染引擎編輯器的研究
國外電子元器件
況衛飛,彭四偉
摘要: 網絡游戲的發展日新月異,這離不開游戲引擎,而游戲引擎中最重要的莫過于渲染引擎,因為它直接影響游戲的畫面質量和視覺效果。渲染引擎編輯器是針對某款渲染引擎而開發的工具,通過渲染引擎編輯器,開發人員無需了解渲染引擎的內部構架、工作原理,無需編碼便可創作出效果良好的場景供三維應用程序使用,大大提高了開發效率,節省了開發成本。
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網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 又粗又长又硬太爽了视频快来 | 又黄又爽的视频免费看| 真实男女xx00动态图视频| 成人做受视频试看60秒| 亚洲AV无码精品色午夜果冻不卡| 狠狠色婷婷丁香六月| 国产一区二区三区无码免费| 婷婷久久五月天| 在线日韩理论午夜中文电影| 三年片韩国在线观看| 日本高清免费aaaaa大片视频 | 亚洲精品视频在线| 老司机午夜视频在线观看| 国产无遮挡又黄又爽在线观看| 99久热re在线精品视频| 性一交一乱一伦一色一情| 久久午夜无码鲁丝片午夜精品| 欧美卡一卡2卡三卡4卡在线| 人妻一本久道久久综合久久鬼色| 美女被视频在线看九色| 国产嫩草在线观看| 竹菊影视国产精品| 天天射天天干天天| 中文乱码35页在线观看| 日本理论午夜中文字幕第一页| 亚洲乱码精品久久久久..| 用我的手指搅乱我吧第五集 | nanana最新在线视频免费观看网| 日本伊人精品一区二区三区| 亚洲人成无码网站久久99热国产| 污污网站在线播放| 免费国产成人手机在线观看| 老司机午夜精品视频播放| 国产在线98福利播放视频免费| 亚洲香蕉久久一区二区| 国自产精品手机在线视频香蕉| а√天堂资源8在线官网在线| 成年网站在线观看| 久久久久人妻精品一区蜜桃| 日韩日韩日韩日韩日韩| 亚洲av无一区二区三区|