光線追蹤版《我的世界》,意義不只是更炫的畫面
時代變了,大人。
我在看這個演示的時候,突然想到,在過去三十幾年裡面,遊戲行業在無法應用實時光線追蹤的時候,利用各種奇技淫巧,從這種畫面:
進化到了這種畫面。
而光線追蹤版《我的世界》,省略了中間所有的步驟,就實現了比現在最頂尖、最現代的遊戲還要更好的光影效果。這當中的意義或許不光是證實“一般電腦帶不動《我的世界》”的傳言,甚至還有可能會改變未來遊戲行業的工作流程。
“光線追蹤”誕生於1968年,簡單來說,是通過模擬光的物理特性,在一個場景裡面發射幾百萬條光線,在場景裡面自由折射、反射,最後投射回螢幕的光線就會生成影象。這種做法資源消耗很高,渲染起來很慢。第一部3D動畫電影《玩具總動員》使用光纖追蹤渲染畫面,一幀畫面最高可能要耗費30個小時。通過這種方法渲染出的畫面,光影關係是很真實的。
原版《玩具總動員》材質表現力不行,物體塑料感很強,但是光影關係是相對真實準確的
這樣的速度放在遊戲裡面,可比玩家們常說的“放幻燈片”還要慢得多。所以遊戲一般採用的是另一種被稱為“光柵化”的渲染技術。
光柵化可以簡單理解為直接把三維空間的物體拍扁了投射到二維螢幕上。但是這麼做由於缺少了計算光線的步驟,場景間各個物體裡面缺少一些很基本的光影效果,複雜的漫反射間接光源就不說了,甚至連最簡單的鏡面反射都很難實現。比如說,在現實中,你看向一棟大樓的玻璃,會映出城市的倒影。但是在光柵化渲染的遊戲裡面,這樣的倒影是不會出現的。因為電腦實在是太蠢了,沒法自己理解,一個物體為什麼能反射出另一物體的倒影。
以老CS為例,玻璃不會反射出槍支和角色形象的倒影
為了克服光柵化渲染的這種侷限,達到近似光線追蹤的效果,過去幾十年裡,遊戲開發者們一直依賴一種非常取巧的手段:造假。
從前面兩代《極品飛車》畫面的區別可以看出來,他們造假的水平,越來越高明瞭。比如說,現在遊戲裡面的鏡面反射並不少見,像新《蜘蛛俠》裡的大樓也能反射出都市裡的其他建築。
然而這其實是巧妙的障眼法。《蜘蛛俠》玻璃上面反射出的不是遊戲中的街景,而是一種叫做“Cubemap”的倒影圖。這種倒影圖會預先渲染好,在遊戲過程中實時疊加在玻璃、油漆這樣光滑的表面上,造成倒影的錯覺。倒影圖一套有六張,拼起來正好是一個包圍住場景的立方體。
由於Cubemap是預先渲染好的,周圍環境的變化就沒法在Cubemap上實時體現了。假設《蜘蛛俠》的場景裡有棟大樓塌掉了,如果沒有預先製作好對應的Cubemap,那麼玻璃的倒影裡,塌掉的大樓會依然無損地矗立在原位。如果大樓著起了大火,烈焰沖天,在玻璃的倒影裡也看不出來。
另一種造假的方式,叫做螢幕空間反射(Screen-space reflection),通過擷取已經渲染好的畫面元素,通過反轉和拉伸疊加到光滑的表面上,偽裝成鏡面反射的樣子。
這種做法可以體現場景的實時變化,但缺點也很突出。就像上面的動圖裡展現的那樣,沒有出現在螢幕上的元素,也不會出現在反射的倒影裡。如果應用不當,甚至可能還會出現“照鏡子照出後腦勺”的bug。
反射演算法玩脫了,動作遊戲變身恐怖遊戲
效果和光線追蹤最相似的造假技術,是在光柵化渲染中直接呼叫光線追蹤的計算成果。比如最近比較流行的“環境光遮蔽”(Ambient Occulusion,AO)技術,就是先用光線追蹤的方式計算出場景裡面哪些部分會比較暗,生成一張索引貼圖,在光柵化渲染畫面的時候呼叫,讓遊戲的光影效果更加立體。
儘管這些造假手段越來越高明,效果也越來越好,但是相對應的,成本也越來越高。現在的大型3D遊戲,每個場景都需要大量預渲染好的光照貼圖。而為了和這些不同的光照環境融合,有時遊戲裡的角色也需要好幾套不同的貼圖來適應不同的光線場景。每個光源的擺放位置也都需要經過精心設計。否則一旦發生沒有預料到的變化,就會出現嚴重的穿幫,毀掉設計師精心營造的氛圍。
而光線追蹤版的《我的世界》,完全打破了這些禁錮。不需要費勁去針對每個場景建立Cubemap反射圖,放上一盞燈,屋子裡每面牆上就自然就會出現燈的光與影。也不需要精心設計水邊建築的位置,讓倒影看起來沒有那麼尷尬突兀。一切都是實時光線追蹤生成,直接就是最準確的光影效果,實現這些“造假手段”原本希望的最高目標。那些由普通玩家在《我的世界》裡搭建的場景,不用複雜的光照優化和光源設計,也能媲美優秀場景設計師的手筆。
實際上,遊戲開發者們也不喜歡造假,只是受限於硬體侷限不得已而為之。約翰·卡馬克在《雷神之錘》中率先開始使用光照索引貼圖,可以看作是一切“3D遊戲視覺造假手段”的祖師爺,生涯的一大遺憾就是沒有能夠是實現遊戲中實時光線追蹤的技術。而更關鍵的是,想在遊戲中實現更自然的光影效果,光追的成本要比開發者之前相出的各種曲線救國手段要低得多,受益的不光是3A大作,那些中小型遊戲更是可以藉此實現視覺效果的顯著提升。
因此,光線追蹤版《我的世界》最重要的是展現了一種可能性:當設計師們可以從繁雜的影象技術限制中解放出來,專注於打造讓玩家沉浸其中的虛擬世界的時候,電子遊戲給人們帶來的體驗,會達到一個前所未有的新高度。
作者:青春喜相逢
來源:遊研社
地址:https://www.yystv.cn/p/6120
相關文章
- 《我的世界》win10版將更新測試版本,首次支援光線追蹤技術Win10
- 從《使命召喚》到《我的世界》,光線追蹤技術如何改變遊戲?遊戲
- RTX光線追蹤帶給使命召喚的畫質救贖
- 搭載「光線追蹤」技術的次時代主機會有怎樣的畫面表現?
- 用 Rust 實現簡單的光線追蹤Rust
- 手機上的光線追蹤,OPPO率先做到了
- 從零開始的簡單光線追蹤示例
- 虛幻引擎中的實時光線追蹤(一):起源
- TGDC | 向陽而生 —— 光線追蹤的專案應用
- 如何在 HDRP 中實現光線追蹤?
- RTX顯示卡實時光線追蹤有什麼用? 顯示卡光線追蹤是什麼意思
- RTX顯示卡實時光線追蹤技術解析 英偉達RTX顯示卡的光線追蹤技術是什麼?
- 在WebGL中使用GLSL實現光線追蹤Web
- games101-1 光柵化與光線追蹤中的空間變換GAM
- 光線追蹤往事:十年技術輪迴
- NVIDIA RTX On:Gamescom海量新遊戲大作演示光線追蹤GAM遊戲
- 虛幻引擎中的實時光線追蹤(二):建築視覺化視覺化
- 追蹤將伺服器CPU耗光的兇手伺服器
- WebGPU+光線追蹤Ray Tracing 開發三個月總結WebGPU
- 追光的2022
- 網路廣告商的畫素追蹤是如何工作的?
- NVIDIA RTX賦力全球頂級應用,為百萬創意工作者提供光線追蹤和AI技術AI
- 《使命召喚:現代戰爭》迎來畫質革新,RTX光線追蹤帶來觀影級體驗
- games101 作業4及作業5 詳解光線追蹤框架GAM框架
- 實時光線追蹤技術:發展近況與未來挑戰
- go的鏈路追蹤Go
- DHorse的鏈路追蹤
- 把遊戲變成現實,光線追蹤技術到底有多神?遊戲
- 中國DXR Spotlight光線追蹤開發者大賽優勝者揭曉
- 線上追蹤壓縮後的JS出錯程式碼JS
- Unity GDC 2019 Keynote精彩要點:次時代圖形、實時光線追蹤、DOTSUnity
- 微服務追蹤SQL(支援Isto管控下的gorm查詢追蹤)微服務SQLGoORM
- UE4中的主要材料和光線跟蹤
- [MetalKit]44-Raytracing with Metal射線追蹤
- 漫畫 | 面試的我 VS 真實的我面試
- GDC | 下一代的移動端圖形:《暗區突圍》手遊中的光線追蹤實現
- 8K 還是光線追蹤?業界頂尖開發者最關心的次世代技術
- android 自定義酷炫進度條動畫Android動畫