青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 94, comments - 250, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

GameByro 特性分析

Posted on 2009-04-22 10:42 Condor 閱讀(2852) 評論(2)  編輯 收藏 引用

引言

GameByro是一款成熟的商業引擎,已經被許多成功的商業項目所使用,不僅包括文明4、上古卷軸4,輻射3等跨平臺知名單機游戲,還有EA的大型3DMMORPG戰錘online。GameByro完全基于面對對象設計,結構清晰,便于使用和擴展。靈活的可編程渲染架構使它比較容易支持最新的圖形技術。另一方面,由于強調通用性,GameByro并沒有對上層應用做太多的支持,其工具和插件大多僅具有一些通用功能,所以它更像是一個游戲開發套件而不是一個完整的FrameWork。

引擎特性概覽:

· 跨平臺(PC,XBOX360,PS3)

· 場景圖表現為層次化的結構

· 同目前主要的建模工具集成(插件支持)

· 高效的可視性裁剪

· 在所有的平臺上支持高級3D硬件加速

· 高級紋理和著色效果

· 動態碰撞檢測

· 細節分級表現(LOD)

· 靈活的渲染,排序和裁剪算法

對象系統

GameByro的對象系統的使用遍及整個引擎,其主要實現如對象管理,引用計數,對象生存期等功能。可以通過對幾個基類的繼承來使用對象系。

其主要特性主要有:

1. 智能指針(引用計數)

2. 運行時類識別(RTTI)

3. 場景對象復制

4. 序列化(對象文檔化)

5. 對象命名

6. 對象擴展數據的管理

7. 定時器(主要用于動畫)

8. 多線程操作

驅動層

GameByro對圖形接口進行了封裝,將圖形API從引擎的渲染系統中剝離出來,在PC系統上,GameByro同時支持DX9和DX10兩種接口。

DX9渲染器特性

l GameByro不允許多個DX9Renderer對象同時存在,且不能與DX10Renderer共存。但在同一幀內,GameByro的DX9Renderer可以同時渲染多個窗口。

l GameByro的DX9渲染器支持對資源的多線程訪問,同時也支持對資源的預載,但是多線程的操作仍然受到嚴格的限制。

l DX9Renderer 的固定管線蒙皮操作最少支持4塊骨骼(矩陣),同時基于shader的蒙皮操作支持30塊骨骼。

l DX9Renderer通過對后臺緩沖的多重采樣支持全屏抗鋸齒,范圍在2倍到4倍之間。

l 大多數硬件在DX9下對幾何體的一個單一的piece所能接受的光照數量都有一定的限制(指渲染的一個批),如果超過這個限制,GameByro會根據距離或者是影響因子放棄一些光照。正因如此,在應用程序中,當8個以上的逐頂點光照作用于同一對象時,就會有一些被拋棄。

l DX9Renderer提供了視口的左右反向功能,用于實現后視鏡、立方體貼圖表面繪制等功能。

l DX9Renderer支持頂點霧,可以通過相關接口設置霧的最大值。

l DX9Renderer完全支持DX的紋理格式。應用程序可以將自己的Direct3D textures提供給GameByro,引擎會自動將其封裝到自己的材質對象中并允許添加屬性和特效。通過提供自己的DX的紋理格式,GameByro能夠正確的使用自并非天然支持的紋理格式。

l 紋理相關特性和限制:DX9Renderer需要顯卡支持在同一pass中至少使用兩個紋理,否則渲染器則不會創建成功。此外受限于硬件的功能還有:

1. Cube Mapping(立方體紋理)

2. Specular Bump Mapping(凹凸鏡面貼圖)

3. Diffuse Bump Mapping(凹凸反射貼圖)

4. Non-Power-of-Two Texture Size(編長非二整數冪的紋理):使用這種紋理有如下限制:紋理尋址模式必須設置為clamp,Mipmapping不能使用。

5. Texture Downsizing(紋理精度縮減)

6. Texture Compression(壓縮紋理),DX9Renderer支持載入經過壓縮的紋理格式,并提供了紋理即時壓縮的功能。如果硬件支持壓縮紋理,DX9Renderer可以將經過壓縮的紋理數據直接交給硬件處理,否則DX9Renderer會自動將數據解壓后再交給硬件。

7. Texture Apply Modes Supported:DX9Renderer不支持APPLY_DECAL紋理應用模式。

8. Texture Format Requests(紋理格式要求):精確的紋理像素映射依賴于目標硬件和顯示器像素位寬。

9. Palettized Texture Formats(調色板紋理格式的支持)。

10. Sphere Mapping(球面映射):GameByro中所有的渲染器都支持世界空間中的球面映射。

11. DX9Renderer支持加載包括DDS、TGA、BMP格式的文件。Cube textures和volume textures都能被正確的加載,但是只能通過三維坐標尋址。

12. GameByro的編輯器支持導出DX原格式的紋理,并在加載的時候不進行格式轉換。將DX格式的紋理直接交給DX處理。

引擎渲染系統分析

GameByro的渲染是由幀渲染系統(Frame Rendering System) 控制的,幀渲染系統封裝了每一個批次的繪制過程,這樣可以方便的控制整個渲染流程。

陰影系統:

GameByro的陰影系統是使用幀渲染系統的典范,通過對已有的類以繼承的方式進行功能擴展,實現了靈活的陰影渲染功能。GameByro自身支持三種光源的陰影圖生成,分別為點光源(全方向光)、平行光、聚光燈。

陰影系統統一由一個管理器負責控制。陰影的算法被封裝成了一個個類對象中。系統中同時存在著幾種陰影技術,即可以選擇使用,也可以同時使用幾種陰影技術作用于同一幾何體。陰影系統會自動裁剪掉那些沒有陰影接受體的光源,同時在計算每個光源所產生的陰影時,會裁剪掉那些不受此光源影響的幾何體,達到性能優化的目的。用戶很容易對陰影系統進行擴展,實現自己的陰影算法。

GameByro的陰影主要是基于shadowMap技術,點光源使用了立方體陰影圖,軟陰影則使用了方差陰影圖技術(VSM)。

GameByro的陰影系統集成到了場景編輯器中,可以在編輯器中直接為光源指定陰影效果,所見即所得,提高了開發效率。

clip_image002

(如圖所示,在編輯器中同時使用點光源陰影和方向光產生的軟陰影)

地形系統:

GameByro的terrain是簡單易用的,并且方便為其擴展,用以滿足項目的其他功能需求。

地形系統由以下幾部分組成:

clip_image004

1. NiTerrainComponent:是整個地形系統的入口,通過Terrain Interactor可以像訪問容器一樣訪問NiTerrainComponent所有的sub-component。

2. Terrain Interactor 地形迭代器,通過Terrain Interactor可以啟動所有的數據查詢,比如簡單的碰撞檢測,meta-data查詢,高度圖導入和文件加載。幾乎所有基于terrain系統的操作都是通過Terrain Interactor完成的。

3. NiTerrainSectorComponent 的內部主要包含一個負責組織地形數據塊的四叉樹。此對象負責從磁盤加載執行物體與地形的射線相交查詢,轉換地形幾何體,管理內部資源(包括共享的頂點流和shader)。同時NiTerrainSectorComponent還負責進行四叉樹的遮擋查詢和生成可見集。

4. Data Leaves and Blocks 四叉樹的切分等級是通過NiTerrainComponent設置的,四叉樹的每個節點都包含一個地形塊,塊的邊長必須是2的整數冪。四叉樹的根節點等級為N,葉節點為0,由高到底細節依次增加,等級為0的葉節點所包含的地形塊擁有最高的細節。

clip_image006

5. Material Layers:地形系統通過掩碼圖來為地形指定材質。掩碼的數據指定了地表的每個部分所對應的材質。同一地表最多支持四種材質,根據各自的權重進行混合,權重數據也是通過掩碼來獲得。

材質在地形的渲染系統中扮演著很特殊的角色,可以通過對材質指定meta-data來附載其他的信息(比如在雪地行走的聲音),同時也可以通過對材質的紋理貼圖為地表增加頂點或像素著色程序。此外每種材質可以包含如下指定類型的紋理貼圖:

l Diffuse/Base Map 反射貼圖,通過3或4個通道決定反射光的顏色。

l Detail Map 細節貼圖,為反射貼圖提供Alpha值。

l Normal Map 法線貼圖。

l Parallax Map 視差貼圖,用來保存表面像素的高度偏移信息。

此外GameByro還提供了簡單的地形射線追蹤和水面渲染。地形射線追蹤目前的實現很簡單,就是用一個射線查詢地表的三角形,以后會與Physics進行集成,支持通過物理引擎l實現物體與地表的碰撞檢測。水面渲染主要是用兩張紋理動畫混合而成,通過凹凸貼圖來表現水波。引擎為水面所在的地表生成一個灰度圖,保存地表距離水面的高度。這里預先定義了兩種顏色,深水顏色和淺水顏色,如果水面以下沒有地表就直接使用深水顏色。再像素著色器中可以對高度圖進行采樣,從而得出當前像素的水深,然后根據這個深度在深色和淺色之間進行差值,得到最終水的顏色。不過這個效果并不是很理想,如需更好的效果,還需要對其進行擴展,比如說,增加反射和折射等。

clip_image008

材質

GameByro的材質主要是通過3DMAX的插件進行編輯的,并提供了標準的材質節點。

(在GameByro中,材質節點的主要作用是負責根據著色過程生成相應的shader代碼)這個節點一共有9個通道,并提供了大量可供調整的參數,這樣就可以讓美術方便的使用逐像素光照、視差貼圖、環境體貼圖這些效果,在游戲中,GameByro通過不同的材質屬性和不同的光照環境編譯出不同的shader代碼,以二進制的形式保存在磁盤上,下次啟動時載入內存,這樣就不用重復編譯,但在第一次進入游戲中時會有些延遲。靈活強大的材質是次世代引擎的重要特征,GameByro在這方面做到了靈活,但是美術仍然不能通過可視化工具控制材質的處理過程,只能編輯資源和修改參數,編輯性還不夠強大。

Shader

GameByro提供了一個極具擴展性的shader系統,并將它與藝術創作工具緊密結合。GameByro定義了自己的shader格式,基于文本的.NSF文件和基于二進制的.NSB文件,.NSF文件編譯后生成.NSB文件,這個過程即可以在開發時完成,也可以在運行時進行。 .NSF文件使用的是GameByro自定義的語法,并使用自己的語法分析器將其編譯成相關平臺的代碼。實際上,GameByro的shader系統在應用程序和GPU程序之間做了一層封裝,屏蔽了不同平臺之間的差異,使得應用程序可以用相同的接口來與GPU之間進行交互,而GPU程序最終還是通過cg或hlsl來實現的,這樣做的好處是,當平臺發生改變時,只需要根據具體的平臺來編寫相應的shader程序,而不需要去修改應用程序。當然,shader系統也直接支持cg和hlsl格式的文件,使用方法同NSF、NSB文件相似。GameByro的Shader系統提供了一套完整的查錯機制,方便使用者對程序進行debug。

GameByro的shader系統集成到了所有的配套開發工具中,這樣就實現了所見即所得,美術在工具中就可以直接看到資源在游戲中的效果,從而提高了開發效率。

GameByro通過引入自己的shader文件格式為跨平臺提供了方便,同時也增加了系統的復雜性,使用起來稍微有點繁瑣,開發人員又不得不去熟悉它的語法,如果開發中不考慮跨平臺的話,想要自己開發特效,也可以不使用NSF文件,直接使用fx格式的文件。

引擎自帶的特殊材質

AdditiveLightMapsMaterial(附加光照圖材質,使用額外的光照圖紋理來混合當前場景光照計算的結果。下面的插圖是使用投射光照圖紋理的渲染效果。)

clip_image010

AlphaTextureBlender(紋理Alpha混合)

clip_image012

Aniso(各向異性光照,左下的飛機)、Halo(光暈效果。上面的飛機)

clip_image014

ASMSkinningLighting(參與光照計算的骨骼動畫蒙皮)

ASMSkinningNoLighting(不參與光照計算的骨骼動畫蒙皮,效率經過了優化)

BaseBumpWithSpatialGlow(帶有輝光效果的凹凸貼圖)

clip_image016

Chrome(金屬外表,使用基本紋理、漫反射cube map、鏡面反射cube map、法線貼圖等效果實現類似于金屬表面的光澤和質感,并支持基于此效果的蒙皮操作)

clip_image018

Colorize(使用一個自定義的屬性來動態的設置或者修改顏色)

clip_image020

FXSkinning and HLSLSkinning(使用可編程渲染管線進行骨骼動畫的蒙皮)

GeneralGlow(普通輝光效果)

GeneralDiffuseSpecularGlow(普通鏡面反射高光輝光)

clip_image022

GeneralDiffuseSpecular(普通鏡面反射高光,支持蒙皮操作)

clip_image024

Dot3BumpMap(凹凸貼圖,右圖為蒙皮效果)

clip_image026

Glass (玻璃效果)

clip_image028

OilyFilm(油狀薄膜)

clip_image030

LuminanceTransfer(類似于熱源偵測儀的效果)

clip_image032

Outlining(藍圖或草圖)

clip_image034

ParallaxMapping(視差貼圖,下面右圖是使用了ParallaxMapping的效果)

clip_image036

PerPixelLighting(逐像素光照,同時支持固定管線和可編程渲染管線)

clip_image038

SkinnedToonShadingWithOutline(卡通渲染,支持骨骼蒙皮、描邊)

clip_image040

紋理

GameByro的紋理系統支持多重紋理、投射紋理、動態紋理、特效紋理,并且使用紋理的一些高級特性是平臺無關的。當然GameByro中紋理的功能仍然受限于硬件特征。主要特性和限制見渲染器。

工具及插件:

GameByro提供了場景編輯器,資源瀏覽器,資源的物理模型瀏覽器、動畫編輯工具,字體創建工具,以及3DMAX、MAYA插件,材質編輯是在插件中進行的,這套工具包含了完整的3D資源開發流程。

物理系統

GameByro通過PhysX提供物理仿真模擬,只需幾行簡單的代碼就可以將GameByro的場景和PhysX建立起聯系,不過需要在顯式的調用相關接口來進行物理仿真對象和場景對象間的同步,即將物理仿真的結果作用于場景中的對象。同時,還可以通過參數來決定是否需要等待物理仿真運算的結果。這就保證了一定的靈活性,例如,用戶可以不對靜態物體進行同步,達到優化的目的。還可以通過把更新的接口放在下一次循環開始的時候調用,這樣可以減少由于等待物體仿真模擬造成線程的阻塞,充分的利用了CPU資源。

粒子系統

GameByro的粒子系統為3ds max 和 Maya等粒子生成工具提供了完整的插件系統,并完全支持軟粒子,即粒子會受到力的影響。

clip_image042

流處理引擎

GameByro實現了一個完全跨平臺的流處理引擎。使用者可以方便的利用它完成多線程任務,如資源的加載等,完全發揮多處理器平臺的威力,而不用關注底層細節。

效率分析:

為了對GameByro進行全面的評估,筆者試著對GameByro的渲染效率進行了簡單的測試,本人的機器配置如下:

l CPU:E2180

l GPU:2400PRO

l 內存:2GB

基本可以代表當前中低端玩家的配置。

場景一

下圖為一個大的室外地形場景,包括建筑物、水面,地表使用了法線貼圖,除了植被以外,基本包含MMORPG的大部分室外場景要素。最后測試的結果平均幀數為21幀。幀數偏低的原因是整個場景使用了逐像素光照,同時沒有采用LOD進行優化。

clip_image044

場景二

如圖所示場景中有100個角色在做不同的動畫,每個角色有51個骨骼,整個場景共有287900個多邊形和556600個頂點,并且場景中有一個點光源和平行光源,在沒有陰影的情況下幀數大約在27~28幀左右。這些骨骼動畫使用了GameByro提供的骨骼動畫優化方法,性能有一定提升。

clip_image046

由以上結果可以看出,GameByro的骨骼動畫渲染效率尚可,而室外地形渲染系統的性能稍顯不足,再沒有角色和植被的情況下,僅能達到22幀左右,如果在實際的游戲環境還要算上其他游戲系統(網絡、邏輯、UI等)的性能消耗,這是不足以讓玩家流暢進行游戲的,還需進一步手動的優化。

總結

GameByro擁有一套靈活的架構,便于使用和擴展,易于上手;配套的開發工具比較齊全,擁有完整的美術開發流程;完全支持跨平臺,便于游戲的移植;同時由于為了保證靈活性,在設計上面比較偏重于功能和擴展,而不是性能。

高度的可定制性帶來的是較低的整合,GameByro沒有提供游戲框架,地圖編輯器也僅僅實現了最通用的功能,即地表和物件的擺放。這就說明,如果要使用GameByro開發產品,就需要自己整合GameByro,并對其進行一定的修改和擴展。這也是它與UnrealEngine3區別最大的地方。

 

作者:葉起漣漪

Feedback

# re: GameByro 特性分析  回復  更多評論   

2009-04-22 16:50 by 巫云
商業的啊……

# re: GameByro 特性分析  回復  更多評論   

2009-04-24 07:51 by Timesking
這篇文章分析的很深入,繼續期待樓主的深入分析

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品av久久久久久麻豆网| 亚洲一区二区伦理| 久久国产加勒比精品无码| 亚洲剧情一区二区| 欧美国产精品va在线观看| 免费观看国产成人| 欧美va日韩va| 91久久精品久久国产性色也91| 久久九九热re6这里有精品| 久久久久国产成人精品亚洲午夜| 久久久久国产精品人| 欧美sm极限捆绑bd| 99国产精品久久久久老师 | 欧美风情在线| 亚洲激情黄色| 亚洲欧美日韩国产综合| 久久精品伊人| 欧美区一区二区三区| 国产精品国产自产拍高清av王其| 国产欧美日韩激情| 在线看片日韩| 午夜精品短视频| 欧美成人在线网站| 一区二区日韩欧美| 久久蜜桃av一区精品变态类天堂| 欧美日韩午夜视频在线观看| 国产一区视频在线观看免费| 亚洲精品一区二区三| 久久精品国产在热久久| 亚洲精品美女久久久久| 先锋亚洲精品| 欧美视频在线免费| 亚洲第一搞黄网站| 欧美在线国产精品| 99re6这里只有精品视频在线观看 99re6这里只有精品 | 国产精品亚洲аv天堂网| 揄拍成人国产精品视频| 在线一区二区三区四区五区| 久久中文在线| 先锋影音久久| 国产一区二区三区四区五区美女| 玖玖精品视频| 国产偷自视频区视频一区二区| 亚洲欧洲精品一区二区精品久久久| 亚洲桃色在线一区| 亚洲国产另类久久久精品极度| 午夜一级在线看亚洲| 欧美日韩一区二| 亚洲精品一区二区网址 | 亚洲韩国日本中文字幕| 欧美影院成人| 国产麻豆精品theporn| 亚洲一区二区三区成人在线视频精品| 美女视频黄 久久| 久久久99爱| 一区二区三区在线视频播放 | 亚洲激情另类| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲一线二线三线久久久| 欧美日韩一二三四五区| 国产精品99久久久久久www| 欧美大片一区二区三区| 久久国产精品电影| 国产综合av| 欧美中文字幕在线| 午夜欧美不卡精品aaaaa| 国产精自产拍久久久久久蜜 | 亚洲欧洲一区二区在线观看| 蜜桃av一区二区| 亚洲人成7777| 亚洲精品久久视频| 国产精品porn| 新狼窝色av性久久久久久| 亚洲一品av免费观看| 国产精品久久久久av免费| 亚洲综合日本| 午夜精品久久久久久久99水蜜桃| 国产欧美日韩免费看aⅴ视频| 久久大综合网| 久久综合狠狠| 亚洲精选中文字幕| 一区二区三区 在线观看视| 国产精品你懂的在线| 久久久久99| 欧美精品午夜视频| 性色av一区二区三区| 久久激情五月丁香伊人| 亚洲人成在线观看| 亚洲一级黄色av| 亚洲国产黄色| 亚洲网站在线| 亚洲电影第三页| 亚洲日本一区二区三区| 国产精品久久99| 久久在线免费观看| 欧美日韩岛国| 久久久久久久97| 亚洲素人一区二区| 亚洲视频专区在线| 一区二区三区在线观看国产| 欧美黄色精品| 国产精品久久一区主播| 久久综合中文| 国产精品观看| 欧美黄色日本| 国产日韩欧美a| 亚洲日本成人在线观看| 国产综合视频在线观看| 日韩一级视频免费观看在线| 一区一区视频| 亚洲一区二区视频| 日韩一区二区精品葵司在线| 欧美在线一区二区三区| 亚洲一区二区三区免费观看| 久久综合久色欧美综合狠狠| 亚洲欧美中文日韩在线| 欧美大学生性色视频| 久久精品国产亚洲一区二区| 国产精品成人观看视频国产奇米| 欧美大学生性色视频| 国产免费观看久久| av成人免费| 一本不卡影院| 欧美a级一区| 久久天天躁狠狠躁夜夜爽蜜月| 国产精品日本一区二区| 亚洲精品久久久久久下一站| 亚洲第一黄网| 久久久久久久久久久久久女国产乱| 亚洲在线观看视频| 欧美日本亚洲| 亚洲日韩欧美视频一区| 亚洲人成网在线播放| 久久综合999| 牛人盗摄一区二区三区视频| 黑人操亚洲美女惩罚| 午夜视频在线观看一区| 欧美在线地址| 狠狠色丁香婷婷综合| 欧美中在线观看| 美女91精品| 亚洲国产精品专区久久| 免费成人黄色片| 亚洲第一精品久久忘忧草社区| 亚洲黄色在线| 欧美日韩另类一区| 一区二区三区精品久久久| 亚洲在线成人精品| 国产伦精品一区二区三区免费| 亚洲女优在线| 久久久久国色av免费看影院| 国产专区精品视频| 裸体丰满少妇做受久久99精品| 亚洲国产精品t66y| 国产精品99久久久久久久女警 | 国产在线高清精品| 久久狠狠一本精品综合网| 麻豆精品在线播放| 亚洲看片免费| 欧美午夜在线观看| 欧美一区网站| 亚洲国产美女精品久久久久∴| 99热在这里有精品免费| 欧美精品三级日韩久久| 欧美国产综合一区二区| 欧美/亚洲一区| 亚洲精品一区二区三区四区高清 | 国产一区二区三区日韩欧美| 久久国产婷婷国产香蕉| 你懂的成人av| 这里只有视频精品| 国产亚洲成av人在线观看导航| 久久久噜噜噜久久久| 亚洲乱码国产乱码精品精 | 亚洲作爱视频| 免费成人高清视频| 亚洲一区二区三区四区视频| 国语自产精品视频在线看8查询8 | 亚洲乱码精品一二三四区日韩在线 | 国产精品天天看| 久久久久久久999| 亚洲美女黄色| 麻豆av一区二区三区久久| 9久re热视频在线精品| 国产视频一区在线观看一区免费| 久久亚洲精品中文字幕冲田杏梨| 99re热这里只有精品免费视频| 久久久久网站| 亚洲欧美在线网| 99综合在线| 亚洲国产精品女人久久久| 欧美性事免费在线观看| 久久综合一区二区三区| 亚洲欧美激情诱惑| 日韩网站在线| 亚洲国产91精品在线观看| 久久精品国产77777蜜臀| 一本在线高清不卡dvd| 影音先锋日韩精品| 国产一区二区精品丝袜|