不瞞你們說,筆者今年剛好30週歲了。作爲一個圖形學狂熱愛好老登,想着做一期文章盤點一下從30年前的1996年到今年,遊戲業界每一次重要的圖形技術進步。不僅是單純的放幾個遊戲截圖或者片段,我決定把這期文章的內容擴充到從硬件到技術到影視追求的方方面面,還融入了一些行業趣聞,希望大家能夠喜歡。
文章比較長,不得已拆分成上下兩個部分,下半部分預計在下週發佈,感興趣的盒友們可以點個關注~不關注的話雙擊頁面點個贊也可以,老韭我會很開心,球球大家了!廢話就到這邊,下面進入正篇。
*本文長約6000字,閱讀大約需要15分鐘*
我們選擇1996年作爲起點。在那個年代,3D遊戲一直是開發者追求的終極目標。雖然早期也有一些類似於《VR戰士》之流的3D遊戲問世,但這些遊戲多數只能在街機上運行,且遊戲本身往往比較簡陋,對於性能更弱的家用機和還未成爲主流遊戲設備的PC來說,3D遊戲更是個難以企及的目標。
![]()
VR戰士
爲了模擬3D效果,工程師也想了許多辦法,例如《星際火狐》中使用3D角色+2D背景來實現“僞3D”效果,這也是當時比較主流的做法。但是,僞3D畢竟不是3D,無論是畫面表現力還是遊戲玩法都凸顯着高不成低不就的氣質。不過,約翰卡馬克的出現改寫了這個現實。
![]()
星際火狐
要說約翰卡馬克的大名,在遊戲界那是無人不知無人不曉。這位被譽爲FPS遊戲之父的天才程序員創立的工作室id software的幾乎每一部作品都能夠推動圖形界的發展。在1996年,id發佈的《雷神之錘》便成爲3D與2D遊戲之間一次重要的分水嶺。
![]()
約翰卡馬克
以當時PC的性能指標,業界普遍認爲還未能觸及3D遊戲的門檻,那麼《雷神之錘》是如何實現這堪稱魔法的成果的呢?有句話叫圖形學是代碼的藝術,能夠流暢運行的《雷神之錘》靠的當然也不是變戲法。
現代遊戲中,剔除(culling)不過是再普通不過的技術,簡單來說就是處理器只渲染玩家看得見的部分,對於看不見的就選擇性忽略以提升運行效率。但在那個2D遊戲佔主流的年代,3D空間的剔除還尚未有人實踐過,《雷神之錘》就是那個第一個喫上螃蟹的人。
![]()
雷神之錘重置版
當然《雷神之錘》的3D剔除也不是一蹴而就的,卡馬克早在《毀滅戰士》中就已經探索了基於二叉樹結構剔除的僞3D射擊遊戲,這給後續的《雷神之錘》打下了基礎。不同於《毀滅戰士》中使用的BSP技術,《雷神之錘》中搭載的PVS更進一步,其使用的Quake引擎在BSP空間劃分基礎上,在開發時就預計算所有可見集合並記錄於表中,使用時直接查表,大幅降低硬件負擔。
![]()
BSP
PVS的出現深刻的影響了3D遊戲的發展,直至今日仍在被廣泛使用,光線追蹤BVH某種程度上也與其有相似之處,可謂意義重大。值得一提的是,1996年還有一件影響深遠的大事。
1996年11月,3dfx發佈了Voodoo顯卡,這是歷史上第一款成功普及的消費級3D加速卡,《雷神之錘》後來推出的GLQuake版本首次支持這款顯卡的API,讓玩家第一次體驗到了硬件加速帶來的流暢畫面。
![]()
Voodoo 1 加速卡
這直接催生了獨立的3D顯卡產業,也爲英偉達後來的崛起埋下了伏筆。就在次年,遊戲界迎來了一個方向與《雷神之錘》完全不同,但同樣改變了遊戲業發展的傳奇遊戲。
1997年,在大洋彼岸的日本,Square公司放棄與任天堂長達十年的合作關係,將新一代的《最終幻想》轉投PS平臺,這毫無疑問是一場豪賭,但他們別無選擇。
當時,Square在開發《最終幻想7》的同時,協助索尼製作了一款名爲《妖精戰士》的RPG,這引起了任天堂的不滿。爲了懲罰“叛徒”Square,任天堂在發售其製作的《聖龍傳說》時,將所有庫存一次性強行壓貨給經銷商,導致市場瞬間飽和,價格崩盤。這場制裁讓Square直接虧損了34億日元,公司一度瀕臨破產,這也導致了Square與任天堂決裂。但拋開這個原因,Square也有不得不放棄任天堂的理由。

聖龍傳說
在那個年代,N64和MD都採用卡帶作爲存儲介質。這種介質容量較小,價格卻很昂貴,也正因爲這些限制,遊戲的體量始終無法迎來突破,主打電影化敘事的《最終幻想7》自然無論如何也是裝不進64MB的卡帶的。同期世嘉土星雖然採用了便宜管飽的CD ROM,但是由於其商業上的失敗,根本吸引不了理智的開發商,最後也只剩下了剛剛起步的PS平臺(當然索尼的資助也是一方面)。
![]()
PS使用的CD ROM
但是,由於PS1的CPU多邊形處理能力很有限,坂口博信團隊專門開發了一套混合渲染管線,使3D角色能夠通過深度緩存和遮罩與2D背景完美混合,使遊戲過場動畫表現力上升了一個維度。不過即便如此,要想達到影視級的表現力,在那個年代除了使用CG別無他法。
![]()
2D背景+3D角色
爲了演出質量,《最終幻想7》用了超過60分鐘的高質量CG。即便CD ROM單張最大有650MB的容量,《最終幻想7》也足足用了3張光盤才裝下,這也是《最終幻想7》爲數不多的重大缺陷。不過,僅一年後,這個缺陷就迎來了終極的解決方案。
![]()
無論在遊戲圖形技術還是電影化表達方面,1998年都是如假包換的超級大年。在那一年,任天堂帶來了對遊戲業界產生深遠指導性影響的《時之笛》,同年另一位傳奇製作人則在《最終幻想7》的基礎上更進一步,將遊戲圖形推向電影化的高潮,這個遊戲就是小島秀夫的《合金裝備Solid》。

MGS
不同於我們剛剛提到的《最終幻想7》,《合金裝備Solid》完全拋棄了傳統的CG播片,轉而採用了全3D即時演算過場動畫,“即時演算”一詞也正是在這個時候被髮明出來。即時演算帶來的沉浸感是其他任何形式都難以媲美的,同時也將寶貴的儲存資源從CG中解放出來,這爲後來《戰神》等作品的無縫敘事奠定了基礎。小島秀夫因此被稱爲電影狂人,當然他自己也是這麼認爲的就是了。
![]()
小島秀夫
說來也是巧合,《合金裝備Solid》與《時之笛》都殊途同歸地定義了“相機”的概念。以往除了第一人稱的FPS遊戲,其餘遊戲多是俯視角或是第三人稱固定視角的,《最終幻想7》也是如此,而《合金裝備》則採用了非常有創意的混合視角。
![]()
時之笛
當角色穿過特定區域時,鏡頭會自動切換到預設的固定角度,這使得玩家看到的內容能被很大程度上控制。這種動態相機的概念也是《合金裝備》電影化質感的重要來源。這種“運鏡”的思路也將遊戲影視化帶上了一個新的臺階。
![]()
混合視角相機
1998年還誕生了一項重要技術:LoD。首次搭載這項技術的遊戲《家園》將RTS遊戲徹底帶入3D時代。在《家園》中,當玩家將視角拉近時,引擎會將焦點模型自動切換爲幾千個面的高精度模型,而視角拉遠時,模型精度則會相應的降低,甚至進一步降爲幾十個面的Billboard。
![]()
家園重製版
雖然《家園》中的LoD和現代遊戲(尤其是RPG)中的LoD應用方式有所不同,但兩者的理念卻是高度一致的,即便放在28年後的今天,絕大多數遊戲仍然需要依賴此技術,其重要性不言自明。
![]()
LoD
隨着LoD的引入,3D遊戲集齊了最後一塊拼圖。自此,3D遊戲迎來了井噴式發展。1999年發佈的《莎木》也成爲了3D開放世界沙盒遊戲的先驅作品,奠定了包括實時天氣變化,NPC自主行動軌跡,真實時間系統等多項現代開放世界的標準,使其成爲了當時獨樹一幟的真實向遊戲。
![]()
莎木1
要實現這一目標也離不開強悍的硬件,1999年發佈的世嘉DC功不可沒。其採用的日立SH-4處理器浮點運算能力高達1.4 GFLOPS,比當時流行的奔騰II快4倍,“顯卡”上也強過當時的Voodoo3。但是,當時的世嘉一方面缺少像樣的第三方支持,更重要的是不久後索尼公佈PS2半路截胡,導致開發商提前進入觀望階段,DC很快就陷入沒遊戲可玩的地步。
![]()
DC
不過PS2也的確不是虛張聲勢,這臺機器的硬件規格在2000年的當時堪稱怪獸級別。其CPU主頻比DC高了近50%,內存也翻了一倍,但它的顯卡就很極端了。
在PS2之前,行業普遍認爲3D圖形的瓶頸在於顯存容量。PS2搭載的圖形處理器總線帶寬高達48GB/s,顯存卻僅有4MB,這意味着必須用“流式傳輸”而非“緩存”的思路來開發遊戲,這無疑對開發者很不友好。但事實證明這個思路是正確的,也正因如此《GTA3》等無縫讀盤的開放世界遊戲才得以問世。
![]()
PS2
同年,PC這邊也發生了一件大事,英偉達收購了曾經風光無限的3dfx,正式登上了遊戲行業的王座。誰也不會料到,這位圖形界的新秀在未來將成爲圖形界乃至整個計算機領域的霸主。
![]()
英偉達
收購完成後的第二年,英偉達推出了GeForce 3----世界首款支持可編程着色器的GPU。此前,在固定功能流水線時代,顯卡的每一個處理單元都只能執行預設的操作。此刻隨着頂點和像素着色器的引入,開發者可以自己編寫程序,針對每一個頂點編寫變換和光照操作,大大解放了開發者的束縛。
![]()
GeForce 3顯卡
不過,英偉達並非唯一的玩家。就在GeForce 3發佈後不久,ATI推出了Radeon 8500,這是首款支持DirectX 8.1的顯卡,像素着色器版本提升到1.4,在部分特效上甚至領先於英偉達。
![]()
Radeon 9700 Pro
2002年,ATI又發佈了全球首款支持DirectX 9.0的顯卡:Radeon 9700 Pro。它的像素着色器2.0版實現了更高的精度和更復雜的數學運算,浮點精度也提升至32位。這款顯卡在性能上全面超越了英偉達的同代產品,一度成爲發燒友的首選。而英偉達則推出GeForce FX系列匆忙應戰,雖然口碑不佳,但這場激烈的競爭極大地加速了圖形技術的發展。從此,圖形界進入了紅綠雙雄並立的時代,再看今天已幾乎失去全部獨立顯卡市場份額的AMD,只能說令人唏噓。
![]()
25Q4AMD市場份額已小於10%
如果2001年是可編程時代的起點,那麼DirectX 9.0就是其終極形態。2004年,一家名不見經傳的德國公司帶着被後世稱爲“顯卡殺手”的遊戲走進了公衆的視野----它就是《孤島驚魂》。
![]()
孤島驚魂
《孤島驚魂》所使用的CryEngine的渲染管線可以用喪心病狂來形容。它通過地形分塊和漸進式LoD實現了超遠視距渲染。其單一植物面數就高達幾百個,還能隨着風場動態彎曲,獨立投射陰影,體積光“達利園”效應也在此時正式在遊戲中登場。
![]()
驚人的植被
不僅如此,《孤島驚魂》還爲業界帶來了BRDF應用的早期探索----即物體反射率會隨視線夾角變小而增大,Crytek也因此實現了當時業界最佳的水面效果。即便放在今天,BRDF也仍然是一項性能損耗巨大的技術,乃至許多開發者都認爲喫力不討好,很難想象2004年的《孤島驚魂》是多麼超前。
![]()
BRDF
這也帶來了一個問題,《孤島驚魂》發售後,玩家們發現即便是當年最先進的顯卡6800GT也跑不動全特效。Crytek的創始人Cevat Yerli後來承認,他們故意把畫質標準定得遠超當時的硬件水平,因爲“未來總會追上來”。事實證明他是對的,《孤島驚魂》的出現直接奠定了未來幾年硬件測試的基準。
2005年,一家叫AGEIA的公司發佈了PhysX物理加速引擎,這是圖形硬件發展史中的又一個里程碑。
![]()
PhysX加速卡
在PhysX之前,重力/布料/流體模擬與碰撞檢測等物理計算全部由CPU負責。這些計算極其繁瑣,既無法發揮CPU的長處,還會佔用大量寶貴的運行資源。AGEIA的方案是用一塊專用PPU(物理處理單元)來分擔這些任務,原理和後來的GPU加速如出一轍。
![]()
刺客信條4中的PhysX
PhysX的出現使得剛體的重力效果飛躍式進步,視覺上不再像輕飄飄的海綿塊,甚至連之前想都不敢想的物理破壞效果也成爲可能,將這些發揮到登峯造極的遊戲則是2008年EA發佈的《鏡之邊緣》。同年,英偉達收購AGEIA,將PhysX整合進自家顯卡,PPU自此成爲歷史,但“物理引擎”這個概念從此深入人心。
![]()
鏡之邊緣玻璃破壞效果
時間線未免跳的有點過快,讓我們把時間拉回2005年。這一年還發生了一件爲玩家津津樂道的事情。
此時時值新一代主機推出前夕,索尼爲了炫耀下一代主機PS3的性能,展示了一段《殺戮地帶2》於PS3上的實機演示,其絕佳的畫面品質令市場譁然。發佈會結束後,有媒體質疑這段演示並非實機畫面而是預渲染的CG,索尼與開發商遊騎兵自然是矢口否認。儘管存在爭議,但這部預告片極大地提升了公衆對PS3機能的期待,有效平息了當時關於PS3機能不如Xbox 360的傳言。
而隨着次年Xbox 360和PS3的相繼亮相,這款被寄予極大期待的作品卻沒有如約發佈,取而代之的僅僅是一段DEMO演示。玩家和媒體此時發現,DEMO畫面與2005年的預告片存在明顯差距,畫質縮水嚴重。對此遊騎兵後來承認,2005年的預告片並非實機畫面,而是預渲染的CG動畫。索尼之後對此事三緘其口,《殺戮地帶2》也因此成爲了玩家最爲津津樂道的畫質詐騙事件之一。
雖然主機這邊的畫質令人遺憾,但PC這邊就不一樣了。2007年,《孤島危機》發佈,開發商同樣是此前著名顯卡殺手《孤島驚魂》的開發商Crytek。在本作Crytek再次帶來了一系列將引領遊戲畫面革命的技術。
![]()
噔噔咚
此前,大多數遊戲依賴光照貼圖(Lightmap),也就是預計算光照。而《孤島危機》引入的動態光照系統使得遊戲的畫面被推向了另一個高度。不過,如果說動態光照是時代的必然,那麼另一項影響深遠的技術----SSAO,則是時代抄的一個小捷徑。
![]()
SSAO效果對比
SSAO全稱“屏幕空間環境光遮蔽”,由英偉達在2006年首次提出。它利用屏幕空間每個像素與其鄰近像素之間的深度信息來計算被遮擋的比例,按照這個比例給這個像素增加一個暗調。這項技術的出現使得引擎可以用較低的代價模擬物體相互接觸部分的陰影。雖然在物理上這種陰影並不準確,但在硬件有限的時期,這項技術的出現大大提升了畫面的質感。此後業界逐步發展出了HBAO,GTAO等多種AO技術,Crytek家也在後續將此技術迭代到SSDO。在光追問世之前,GTAO一直是最接近真實物理世界的AO技術,但這一切都因光追的出現而完成了它們的歷史使命,不過這都是後話了。
![]()
《孤島危機》同樣支持PhysX,近乎誇張的硬件需求使得其再次成爲業界衡量顯卡性能的指標,它也因此留下了一句流傳至今的名言:“But can it run Crysis?”
同時,次世代主機的上市也正式拉開了HD時代的序幕,但高清化也給遊戲業界帶來了重大的考驗。
在PS2時代,一款大作可能只需要幾十人團隊,而到了PS3/Xbox 360時代,團隊規模動輒上百人。這種架構的變化使得開發週期和成本也開始劇烈膨脹,遊戲開發開始迎來了第一次失控,最具代表性的事故,就是《最終幻想13》。
![]()
雷霆歸來也是PS3畫質最好的遊戲,也許沒有之一
Square Enix爲了這款遊戲開發了Crystal Tools引擎,但由於架構混,工具鏈不成熟,開發過程一度陷入停滯,甚至不得不抽調其他項目人員救火。最後04年就已立項的《最終幻想13》一直跳票到了2009年才上線,成本也高達半部《泰坦尼克號》。遊戲公司開始衡量投資的風險和回報,遊戲的商業化味道也是從這個時期開始愈發濃厚。
![]()
爲了儘可能攤薄開發成本,一些公司開始逐步對外授權自己開發的引擎,其他公司也因此可以省下自研引擎的成本。第一批商用引擎中,除了上面提過的Cryengine外,就是大名鼎鼎的虛幻3了。
![]()
虛幻引擎
UE3毫無疑問是一款極其出色的商用引擎,它也因此相當長壽,2014年發佈的《蝙蝠俠阿卡姆騎士》再一次向世人展現了這款有些老舊的引擎所能達到的畫質天花板。又扯遠了,時間線再次回撥。
![]()
這是虛幻3你敢信?
UE3的代表作品就是作爲Xbox 360的看門作品《戰爭機器》,而它真正改變行業的並不是新主機帶來的多邊形數量的指數級提升,而是法線貼圖的全面普及。
![]()
戰爭機器
在此之前,想要表現精細的表面細節,必須依賴多邊形來構建,即便放在今天這種思路也是不可行的。而法線貼圖的出現解決了這一難題。法線貼圖的核心是將高精模型的凹凸細節預烘焙至法線貼圖中,然後再將其應用於低模上。當光線照射時,引擎會根據法線貼圖計算每個像素的光照角度,從而讓低模在視覺上擁有高模的凹凸質感。這項技術極大地解放了多邊形預算,併成爲之後的行業標準。
![]()
法線貼圖技術簡介
自研引擎向商用引擎的轉變乃現代遊戲開發的無奈之舉,但因其缺乏自定義功能,很難符合一些有創意的工作室的需求。一些有經濟條件的大廠爲了不被商用引擎“卡脖子”,仍然選擇自研引擎,寒霜絕對是這點的代表引擎。
![]()
寒霜引擎
2008年,DICE推出了《戰地:叛逆連隊》。這款基於寒霜引擎的遊戲的最大賣點便是可破壞的環境,這個賣點直到今天依然是這個系列最堅實的護城河。
![]()
叛逆連隊
在傳統遊戲中,所謂的“破壞”大多是通過預置腳本實現的,《叛逆連隊》的破壞系統雖然也是這個思路,但更爲動態。建築物的每一個部分都由獨立的物理單元構成,不同部分會根據受擊方向,威力大小而實時破碎。這種預分割的物理破壞模擬是當時硬件條件下實時破壞的最優解。即便放在今天,《叛逆連隊》的破壞效果仍有可圈可點之處,其2010年發售的續作《叛逆連隊2》的破壞效果甚至仍然領先於業界絕大多數其他方案。
![]()
由於篇幅原因,讓我們用剛剛提到的詐騙遊戲收尾。直到2009年,一度轟動遊戲界的《殺戮地帶2》才千呼萬喚始出來,其畫質也自然沒有2005年時預告片中那樣震撼。但也不是說它一無是處,拋開宣發問題,《殺戮地帶2》本身的畫面在當時仍屬一流。
![]()
殺戮地帶2
它最大的技術亮點是延遲渲染的成熟應用----傳統的正向渲染需要爲每個光源單獨繪製一遍場景,而延遲渲染先將場景的顏色/法線/深度等幾何信息存入多個緩衝區(G-buffer)中,再統一計算光照。
![]()
這種方案在處理大量動態光源時效率極高,光源數量不再幾何級地影響性能了。但延遲渲染有一個致命的缺陷:它難以處理半透明物體。玻璃,水和粒子等需要混合顏色的效果,在單純的延遲渲染管線裏無法實現。
遊騎兵的解決方案也很簡單,將延遲渲染處理不了的物體退回到前向渲染,最後再將兩層疊在一起不就好了。不過,由於PS3的RSX顯卡在規格上比較弱,爲了實現延遲渲染中的部分效果(如MSAA),遊騎兵不得不將這些計算轉移給Cell處理器中專爲浮點運算設計的SPU單元處理,後者雖然無法獨立完成程序,但在處理並行運算時效率很高,這種異構計算的思路這和英偉達的CUDA如出一轍。
由於篇幅的限制,本文不得不在此按下暫停鍵,後續的內容我也會盡量趕製,當然後半的內容會更加精彩,在枯燥的技術外,我也會盡可能把一些有趣的開發小故事穿插在其中,希望大家能夠喜歡!我們下篇再見~
(看到這裏還不點贊關注一下嗎,不要逼我跪下來求你們!)
更多遊戲資訊請關註:電玩幫遊戲資訊專區
電玩幫圖文攻略 www.vgover.com
