揭密虛幻引擎3 驅動次世代游戲的澎
本文主要內容來自于【虛幻引擎3官方網站】,后期經筆者編譯并二次創作,增添了部分內容,未經書面許可,請勿對本文進行轉載。
究竟是3D游戲的發展帶動顯卡的進步,還是顯卡的發展帶動3D游戲的革新,這個問題恐怕誰也說不清楚。要是沒有卡馬克的DOOM和QUAKE,誰也無法想像目前顯卡會發展成為什么樣。反過來,如果沒有GPU和VPU這些芯片的性能不斷提高,也不會有這么多出色的3D游戲來供廣大玩家“大開殺戒”。這個問題就像“先有雞還是先有蛋”,絕大多數情況下永遠也糾纏不清。

DOOM和QUAKE之父
當然,我們在本文里并不需要繼續討論這個問題,只是想借此強調一下游戲在整個3D圖形技術發展中的重要推動性作用。雖然嚴格說,玩游戲在我們當前的社會環境下仍然屬于“不務正業”,但是游戲的確是3D顯示芯片不斷進化的最根本動力之一。
游戲對于顯卡的要求本身就是多方面的,這樣才能保證玩家能夠充分體會到游戲所帶來的快樂。
一方面,游戲要求顯卡的處理速度越來越快,在運行游戲的情況下能夠保證流暢的幀率。這反映在具體的指標上就是fps值要達到一定幅度。幀速率達到什么樣的標準才能讓玩家感到“平滑”呢?對于沒有交互的畫面,24fps以上就能夠讓人接受。而對于大量實時交互畫面,通常需要達到60fps才能勉強接受。特別是在主視角射擊游戲中,玩家需要更高的幀速率才可以滿足要求。
另一方面,對于游戲的畫質,要求顯示卡能夠顯示出更加細小的細節,一方面要求顯卡的分辨率越來越高,同時也要求顯示卡能夠提供全屏抗鋸齒的功能以滿足更真實的效果。
游戲中的場景已經幾乎和照片無異
這些當然只是對顯示卡的要求,一款游戲是否能滿足玩家還有很多其他的因素,這其中包括游戲的可玩性、自由度、AI的設計等等方面,這些特性都需要游戲開發者的智慧去解決。<
話說起來總是簡單的,如果付諸實施就要難得多了,3D游戲如果在前面提到的要求中都能夠達到一定的層次,確是非常難于實現的,特別是如何讓顯卡發揮出比較高的性能,同時保證游戲的幀速率達到一定的值,還要讓游戲性非常強。這對于任何一個開發游戲的團隊來說都是非常困難的一件事,因為工作量太大了。
解決這個問題的方法就是根據“分而治之”的原則,將游戲開發過程中的大量的工作分為不同的部分,以解決游戲開發過程中工作量過大的問題。在實際的游戲開發中,目前最為流行的一種方法就是先開發出一套獨立的游戲引擎(Engine),然后再根據這套引擎提供的功能將游戲完成。游戲引擎提供的通常是游戲運行最基本的內核程序,就像是一臺汽車的發動機一樣,但是光有發動機的汽車也是沒有辦法跑的,同樣,只有引擎的游戲也是不能稱之為游戲,必須加上相應的游戲劇情,豐富的資源文件以后才能稱之為游戲。
這樣做的好處顯而易見,游戲的開發者再也不用了解游戲底層的運行方式是怎樣的,也不需要知道如何實現的絢麗的效果了,只需要利用引擎提供的功能來將游戲做的豐滿就可以了。這就像是你只需要知道當你供給發動機以燃油和空氣的時候就會輸出動力一樣,具體的引擎內部的運作原理根本不需要知道。游戲開發人員只需要利用提供給自己的功能就能在比較短的時間內完成游戲了。
我們熟知的很多游戲都采用了這樣的開發方式,Quake系列的引擎,Unreal引擎,HalfLife2引擎,Farcry采用的CryEngine等等,這些著名引擎都獲得了非常大的成功,應用的范圍也非常廣,RTCW、COD、HalfLife、CS采用的Quake系列引擎,Unreal、UT、分裂細胞、XIII等等游戲都采用的是Unreal引擎。
采用虛幻引擎2的游戲非常豐富:
| | |
| | |
|
|
|
在今年的NV40的發布會上,NVIDIA聯合EPIC展示了Unreal引擎系列中最新的一個版本Unreal Engine 3,其中展示的特效震撼了所有到場的觀眾,人們一時間將所有目光全都集中向了這個游戲。Unreal3一下子成為了游戲業界的焦點,一時間甚至超過了本應在這個季節最值得關注的Doom3和HL2。<
那么究竟這個全新的引擎能夠給玩家帶來怎樣的視覺效果呢?今天就請您跟隨著筆者一起來領略一下這個引擎的強大實力吧。
首先我們欣賞一下在NV40發布會上的錄像吧,這段錄像是NVIDIA在國外的發布會上的視頻,推薦網絡條件許可的讀者一定要看一看。
點擊下載視頻(165MB)
● 虛幻引擎3概要
虛幻引擎3是一個面向下一代游戲機和DirectX 9個人電腦的完整的游戲開發平臺,提供了游戲開發者需要的大量的核心技術、數據生成工具和基礎支持。
虛幻引擎3的設計目的非常明確,每一個方面都具有比較高的易用性,尤其側重于數據生成和程序編寫的方面,這樣的話,美工只需要程序員的很少量的協助,就能夠盡可能多地開發游戲的數據資源,并且這個過程是在完全的可視化環境中完成的,實際操作非常便利;
與此同時,虛幻引擎3還能夠為程序員提供一個具有先進功能的,并且具有可擴展性的應用程序框架(Framework),這個框架可以用于建立、測試和發布各種類型的游戲。 <
◎ 64位色高精度動態渲染管道。
Gamma校正和線性顏色空間渲染器提供了完美的顏色精度,同時支持了各種后期特效例如光暈,鏡頭光環和景深等效果。
在最新的一代顯示芯片發布的過程中,我們注意到了一個非常明顯的特點,就是新一代的顯示芯片已經不再滿足于傳統的32位色深,轉而需要更加高精度的顏色范圍,這一點在NV40和R420身上都能非常明顯的看出來。在NV40上,這種技術被稱為HPDR技術,而在R420身上,這種技術也有所體現。
使用64bit色彩空間的高動態范圍效果(點擊放大)
◎ 支持當前所有的基于像素的光照和渲染技術,包括使用法線貼圖技術的參數化的Phong光照;虛擬位移貼圖;光線衰減函數;采用預計算的陰影遮罩技術以及使用球形harmonic貼圖的預計算的凹凸自陰影
采用法線貼圖的半透明物體呈現出反光效果(點擊放大)
美工創作效果、彩虹色材質都能很好的和基于像素的光照/陰影結合<
◎ 高級的動態陰影。
虛幻引擎3提供對下列3種陰影技術的完全支持:
· 采用動態模板緩沖的陰影體積技術,能夠完整支持動態光源,這樣就能在場景中所有物體上精確地投射陰影。
馬燈的躍動能夠產生具有模糊效果的稀薄陰影,這些陰影也能實時的掃過場景· 能夠讓動態的角色在場景中投射出動態的、柔和的模糊陰影,這個過程是通過使用16X超級取樣的陰影緩沖實現的
采用模糊效果的陰影和采用法線貼圖的表面產生微妙的相互影響
· 采用了擁有極高質量和極高性能的預先計算出的陰影遮罩,從而可以將靜態光源的交互現象離線處理,同時保留了完整的動態高光和反射效果。<
◎ 所有支持的陰影技術都是可視化的,并且可以按照美工的意愿自由混合。另外,同時可以與有顏色的衰減函數結合,從而實現具有合適陰影的平行光、聚光燈效果,以及投射光效果
角色能夠在虛幻引擎3中使用陰影技術產生動態的軟陰影
◎ 強大的材質系統,使得美工可以在實時圖形化界面中建立任意復雜的實時Shader,而這個界面的友好度可與Maya的非實時Shader圖形編輯界面媲美
◎ 材質框架是模塊化的,所以程序員不僅可以加入新的Shader程序,還可以加入能夠讓美工隨意與其他組件連接的Shader組件,從而可以實現Shader代碼的動態合成。
◎ 完全支持室內和室外環境的無縫連接,在任何地方都支持的動態每象素光照和陰影。
◎ 美工可以通過一個可動態變形的基本高度圖來建立地形,并使用多層混合材質,這其中包括位移貼圖,法線貼圖和任意復雜的材質,動態的基于LOD的細分,以及植被。
另外,地形系統還支持美工控制的自然效果,如平地上的植被,陡坡上的巖石和山頂上的雪
模糊效果的云,影子掠過小山,風車的影子同時投影在地上
◎ 體積環境效果,包括高度霧和物理上精確的距離霧
擁有軟陰影的角色站在有體積函數的霧中<
◎ 剛體物理系統,支持游戲者和游戲中的物體,布娃娃角色動畫以及復雜碰撞等物體交互方式。
布娃娃(Ragdoll)系統,是目前最為流行的一種非常高級的物理引擎,能夠付給物體以一定的質量,形狀等特性,從而獲得非常逼真的力學動態效果。Half Life 2、Pain Killer等著名游戲均采用了這個物理引擎。
布娃娃系統(Ragdoll)的兩個小Demo(點擊下載)
布娃娃系統能夠讓所有物體都按照力學原理運動<
◎ 所有可渲染的材質都含有物理特性,例如摩擦系數等參數。
在虛幻引擎3提供的編輯工具UnrealEd中,能夠對物體的屬性進行實時修改
◎ 符合物理原理的聲音效果
◎ 完全整合的基于物理原理的交通工具支持,包括游戲者控制,人工智能和網絡
◎ UnrealEd內建的可視化物理建模工具,支持對于模型和骨骼動畫網格的用于優化碰撞檢測的圖元的建立;約束編輯;在編輯器內可交互的物理模擬和調整
UT2004如果采用虛幻引擎3,就能讓車輛具備更先進的物理特性<
● 動畫系統
◎ 骨骼動畫系統;支持每頂點可達4骨骼同時影響的效果以及復雜的骨骼結構。
◎ 動畫由一棵動畫物體樹驅動,包括:
· 混合控制器,進行對嵌套的動畫物體之間的多路混合。
· 數據驅動的控制器,封裝動作捕捉或手動制作的動畫數據。
· 物理控制器,連接到剛體動態引擎,用來實現布娃娃系統的游戲者和NPC動畫和對力的物理響應。
· 過程動畫控制器,以C++或UnrealScript實現,為了實現一些如使一個NPC的頭部和眼睛跟蹤一個在關卡中行走的游戲者,或使一個角色根據健康情況和疲勞度作出不同動作等特性。
◎ 為3D Studio Max和Maya制作的導出工具,用于向引擎中導出賦予蒙皮權重的網格,骨骼和動畫序列。<
● 游戲框架以及人工智能
◎ 提供了一個支持普通游戲對象(如游戲者,NPC,物品,武器和觸發器)的面向對象的游戲框架。
◎ 豐富的多級別AI系統,支持尋路、復雜關卡游歷、單獨決策和組隊AI
· 對如觸發器,門和升降機等普通游戲對象敏感的尋路框架,允許復雜的游歷設定,使得NPC可以按下開關,打開門,并繞過障礙物。
· 游歷框架帶有短期戰術戰斗、掩護和撤退的路線網。
· 基于小隊的AI框架,適合第一人稱射擊、第三人稱射擊和戰術戰斗游戲。
◎ AI路徑在UnrealEd中可見并可由關卡編輯者編輯,允許自定義和提示
◎可見的AI腳本工具,使設計者可以創建復雜的交互性游戲設定,例如游戲者目標,通用的游戲事件觸發器和交互式過場動畫
◎ UnrealMatinee,一個基于時間線的可視化序列、動畫和曲線路徑工具。設計者可以使用此工具建立游戲中的過場動畫,可以是交互的或非交互的,通過動畫序列化、移動包括攝像機在內的對象,控制聲音和視覺特效,并觸發游戲和AI事件。
UnrealEd中的“Matinee”工具,能夠編輯基于時間軸的事件序列<
◎ 支持各種平臺的輸出格式,包含5.1環繞立體聲和高品質杜比數碼音效。
◎ 3維聲源位置設置,多普勒效應。
多普勒效應:是指當發聲物體在運動時,聲音的音調會隨著物體移動速度而改變其高低——聲音頻率的變化,這個原理也被運用在聲卡3D發聲原理之中。

多普勒效應
◎ 在UnrealEd中的可視化音效工具可以為聲音設計者提供對音效的全面的控制,聲音強度,順序,循環,過濾,調制,變調和隨機化。聲音參數被從代碼中分離開,使設計者可以控制所有的與游戲、過場動畫和動畫序列相關的聲音。
◎ 支持所有平臺的主要聲音格式,包括PCM,ADPCM,游戲機對應的聲音壓縮格式和Ogg Vorbis。
◎ 支持游戲機上的聲音流。<
◎ Internet和局域網游戲已經成為Epic的競賽游戲如Unreal Tournament 2004的一大特征。虛幻引擎長時間以來一直提供靈活的高級網絡架構,適合于各種類型的游戲。
◎ Internet和局域網游戲在PC和所有游戲機平臺上都被完全支持
Unreal Tournament 2004的游戲中帶的服務器瀏覽器
◎ 虛幻引擎的網絡游戲部分編程是高層的和數據驅動的,允許由Unreal腳本代碼指定在客戶端和服務器之間聯系的變量和函數,來保留一個同步的對游戲狀態的近似。底層游戲網絡傳輸是基于UDP的并能夠將可靠和不可靠傳輸方式結合,來對游戲感進行優化,即使在低帶寬和高延遲的環境下。
◎ 客戶端-服務器模式下最多支持64個游戲者同時游戲。同時支持非服務器模式(點對點模式)下的16游戲者同時游戲。
◎ 支持不同平臺間的網絡互連(例如PC服務器和游戲機客戶端;Windows, MacOS和Linux客戶端共同進行游戲)。
◎ 所有游戲特性在網絡游戲模式下都被支持,包括基于交通工具的多人游戲,帶有NPC和機器人的組隊競技,單人模式下的協同游戲等等。支持自動下載,包括跨平臺的一致的Unreal腳本代碼。這項特性使得從用戶自己創建的地圖到獎勵包,到完整的游戲mod都可以隨意獲得。
網絡對戰讓游戲的互動性大幅增加
◎ 提供了一個"主服務器"組件來跟蹤世界范圍內的服務器,提供給游戲者過濾的服務器列表,等等。世界范圍內的游戲統計跟蹤系統
◎ 請注意我們不會提供一個適合大量玩家在線網絡游戲的服務器或網絡框架。盡管這項工作是一個需要多人多年工作的工程,仍然有很多小隊已經使用Unreal引擎做了這件事(包括NCSoft的《天堂2》和EA的《創世紀X》),這表明了使用Unreal引擎作為MMORPG游戲客戶端和工具的可能性。<
● UnrealEd內容創建工具
◎ Uneral編輯器(UnrealEd)是一個純粹的"所見即所得"的數據生成工具,用來填充3D Studio Max, Maya和可發行游戲之間的空隙。
◎ 對游戲對象如游戲者,NPC,物品,AI路點和光源的可視化放置與編輯-帶有完全的實時預覽,包括100%的動態陰影。包含一個數據驅動的編輯框架,允許關卡設計者容易地自定義任何游戲對象,以及允許程序員通過腳本向設計者能夠使用新的可自定義的屬性。
可視化的材質瀏覽器,并能提供搜索和管理的功能
◎ 美工可以通過實時地形編輯工具來提高地面,向地面繪制Alpha層來控制各層的混合并組裝各層,碰撞檢測數據和位移貼圖
◎ 可視化材質編輯器。通過可視化的連接顏色、alpha和貼圖坐標系統和程序員定義的材質組件,美工可以建立從簡單的多層混合材質到極為復雜的材質,并且這些材質可以動態地與場景中的光源交互
◎ 一個強大的瀏覽框架,可以用來尋找、預覽和組織各種類型的游戲資源<
◎ 美工可以使用動畫工具來引入模型、骨骼和動畫,并將它們連接到游戲中的事件如聲音和腳本事件。
可視化的材質編輯器讓美工能夠輕易的創建能夠在Shader程序中應用的素材
◎ 在編輯器中的"Play Here"按鈕使得在編輯器中只要點擊一下鼠標即可進行游戲。這樣,你可以在編輯器中一邊測試游戲,一邊進行編輯。
◎ 每份Unreal引擎授權都包含了重新組合分配UnrealEd的權利,使得游戲制作組可以將他們的數據創建工具與游戲一起發布給mod制作團體。Mod提供者已經成為當今很多卓越的PC游戲成功的一個重要因素,而且我們可以預見在將來,對基于PC的mod開發的支持也可能成為游戲機游戲的重要因素。
◎ 我們提供了3D Studio Max和Maya來將模型帶到虛幻引擎中,帶有網格拓撲信息,貼圖坐標,平滑組,材質名稱,骨骼結構和骨骼動畫數據。
可視化的地形編輯器能夠實時體現出地形的變化
◎ 所有您所希望從一個現代數據編輯工具中得到的東西:多層撤銷/重復功能,托拽,拷貝粘貼,自定義快捷鍵和顏色配置,視圖管理。 <
在虛幻引擎3中我們的大多數角色都是由兩個網格模型建立的:一個具有幾千多邊形的實時網格,和一個數百萬多邊形的細節網格。我們提供了一個分布式計算的程序,對細節網格進行光線跟蹤,并且從高多邊形幾何結構生成一張法線貼圖,在游戲中賦予實時網格。結果是在游戲中的網格帶有高多邊形網格的所有光影細節信息,但是仍然可以十分容易的實時渲染。
左為5287個三角形模型,右為200萬三角形模型
左側模型是游戲中真正存在的,右側模型用于前期建立法線貼圖
通過法線貼圖實現的游戲中的效果
使用法線貼圖實現的超過1億個三角形效果
實際上只有50萬個三角形<
◎ 虛幻引擎3包含了例程部分和100%的源代碼,包括引擎本身、編輯器、Max/Maya導出插件和所有該公司內部開發的游戲的游戲代碼。
◎ 可擴展的、面向對象的C++引擎,帶有用于靜態和動態加載代碼和資源的軟件架構,可移植性,易于調試。
虛幻引擎3提供的腳本編輯器
◎ Unreal腳本語言提供了對元數據的自動支持;支持十分靈活的文件格式向下兼容性;支持讓關卡編輯者使用腳本屬性;基于GUI的腳本調試器;對多種重要游戲編程概念的本地語言支持,例如動態有限狀態機和基于時間的代碼執行。
◎ 模塊化材質組件接口來擴展可視化工具,并且在可視化Shader GUI中加入新的美工可用的Shader組件。
◎ 源代碼控制友好的軟件架構,對大型工作組和多平臺工程的可擴展性。<
◎ Unreal引擎3被作為一個可以在PC和任何下一代家用游戲主機上編譯的統一的代碼基礎。所有游戲組件和數據文件都可以在各種平臺上兼容,為了PC上代碼和資源的快速周轉,和家用機和PC上的游戲測試。
◎ 針對家用游戲機的可自由尋址的DVD讀取優化過程,能夠用大于80%的DVD物理傳輸率上讀取關卡。
虛幻引擎3還可以方便的支持多種語言
◎ 虛幻引擎3數據資源和代碼是可地方化的,能夠通過一個簡單的框架來擴展游戲中全部的文字、聲音、圖像和視頻。虛幻引擎3是基于Unicode字符級的,并且完全支持16位Unicode字體和文字輸入,包括引入TrueType字體到可渲染的位圖字體。我們的游戲已經使用9種語言發布,包括中文、日文和韓文。<
這里是一些我們在建立下一個基于虛幻引擎3游戲的指導方針。不同類型的游戲將會有十分不同的游戲者數目,場景大小和表現。所以這些規范只能作為對一個項目而不是對所有項目的指導。
● 角色
對于每個主要角色和靜態網格資源,我們建立兩個版本的網格模型:一個可選然的帶有唯一UV坐標的網格模型,和一個只帶有幾何信息的細節網格模型我們通過虛幻引擎3來處理這兩個模型,基于細節模型的所有幾何信息來為可渲染模型生成一個高分辨率的法線貼圖。
可渲染模型:我們在建立可渲染模型時使用3000到12000個三角形,在場景中同時可見的角色有5到20個左右。
◎ 細節網格:我們使用一百萬到八百萬三角形來為標準的角色建立細節網格模型。這對于為每個角色建立一到兩個2048乘2048大小的法線貼圖已經足夠了。
◎ 骨骼:我們的每個標準角色都有100到200塊骨頭,包括了有關節的臉部、手部和手指。
● 法線貼圖和材質貼圖
我們在建立大部分角色和場景的普通貼圖和法線貼圖時都使用2048乘2048分辨率的貼圖。我們感覺這是一個對于2006年左右的運行于中檔PC上的游戲來說的一個十分合理的目標。下一代的游戲主機可能需要將貼圖大小減少2倍,而低端PC則需要減少4倍,取決于貼圖數量和場景復雜度。
● 環境
典型的場景環境包括1000到5000可渲染的對象,包括靜態網格和具有骨骼的網格。對于當前3D加速卡的合理性能,我們打算將在任何場景中出現的可視物體數量保持在300到1000左右。我們的典型的更大的場景中最多有20萬到120萬的可見三角形。
● 光照
沒有對光源數量的硬編碼限制,但是為了性能考慮,我們試圖將大范圍的光源數量限制到2到5個,因為每個光源/物體的交互都是基于引擎中比較耗時的高精度每象素光照和陰影渲染管道。用于高光和細節光照的小范圍的光源明顯的要比影響整個場景的大范圍光省時。<
游戲這類非常特殊的軟件在人們的實際工作中并不能夠創造任何實際的價值,但是卻能夠讓人們在使用電腦的過程中得到放松。一個游戲能否給消費者帶來盡可能完美的感官上的享受就成為了一個游戲能否獲得成功的最基本的因素。
而對于游戲中最為流行的3D游戲來講,開發的難度隨著游戲容量不斷攀升,如何能夠迅速的開發出一個個高質量的游戲就成了關鍵,采用游戲引擎和游戲內容分離的方式自然是目前最好的一種解決方案。
于是作為游戲中的靈魂,游戲引擎的成功與否將決定一系列游戲的最終效果。今天我們介紹了目前最為先進的游戲引擎之一虛幻引擎的最新版本,讓大家對游戲引擎有了一定的概念上的理解,也知道了在一個游戲幕后的一些事情。
總的來說,虛幻引擎3的確是一個非常先進的引擎,它提供的功能非常先進,幾乎融合了目前優異顯卡中提供的所有功能,在這樣的技術背景下,這款引擎帶來了非常絢麗的效果,其演示的畫面已經足以震憾每一位觀眾了。
不過話又說回來,這款引擎目前還沒有一款真正的游戲能夠駕馭它,據我們了解,采用這個引擎的Unreal3將于2006年上市,看來我們真的需要等一等了。<
關注我們


