回顧遊戲史:在NVIDIA 的即時光線追蹤技術出現之前,遊戲中出現的那些光影是怎麼計算的?

在遊戲中做到即時光線追蹤確實是一項十分重要成就,很有可能會改變整個遊戲業。假如下一代遊戲機支援光線追蹤的話,情況也許也會有更多的變數。但是從目前的形勢來看,期待即時光線追蹤在未來幾年裡面能夠普及,也許還是太樂觀了一點。

(本文授權轉載遊研社原文連結)

去年8月份,NVIDIA推出了自己最新一代RTX顯示卡。這一代顯示卡一個十分重要的升級,就是增加了一個光線追蹤處理單元,號稱把「即時光線追蹤」功能讓一般消費者也能使用。

在幾款率先支援光線追蹤的遊戲陸續實裝這個功能以後,也有不少玩家已經嘗過了鮮。總體來看,在光線反射比較複雜的情景下,光線追蹤確實對畫面表現有一定的提升。

回顧遊戲史:在NVIDIA 的即時光線追蹤技術出現之前,遊戲中出現的那些光影是怎麼計算的?

但在其它一些場景裡面,可能光線追蹤的效果就沒有那麼明顯了。另外,即便經過了幾輪最佳化,目前光線追蹤效果最好的《戰地風雲5》還是會有20%-30%的影格率損失。在這種情況下,難免也有些玩家會疑惑:這個所謂的「光線追蹤」到底是在幹嘛?我們真的需要這個「光線追蹤」的效果嗎?

回顧遊戲史:在NVIDIA 的即時光線追蹤技術出現之前,遊戲中出現的那些光影是怎麼計算的?

 

其實「光線追蹤」的思路歷史十分悠久。早在17世紀,荷蘭畫家楊·維梅爾就發明了一種可以把圖像聚焦到一面鏡子上的設備,用來輔助自己繪畫。我們現在看幾百年前有些油畫極度逼真,彷彿照片一樣,有部分就是用這種方法畫的。

回顧遊戲史:在NVIDIA 的即時光線追蹤技術出現之前,遊戲中出現的那些光影是怎麼計算的?

現實世界中光影的變化十分複雜,以下圖為例,白框內綠色的撞球左邊映上了紅色撞球的影子,最終呈現出一種偏紅的橄欖色。在另外一邊,也有白色的倒影。材質越光滑的物體,這種現象越明顯。

回顧遊戲史:在NVIDIA 的即時光線追蹤技術出現之前,遊戲中出現的那些光影是怎麼計算的?

通過這個設備,維梅爾可以準確觀察到這種微弱的細節,使得他的作品中光影的真實感在同時代畫家中獨樹一幟。

回顧遊戲史:在NVIDIA 的即時光線追蹤技術出現之前,遊戲中出現的那些光影是怎麼計算的?

假如在這個設備上更進一步,把鏡子換成可以感光的底片,就是照相機的基本原型。實際上,人的眼睛能夠看見東西,也差不多是同樣的原理。

電腦3D圖像所使用的光線追蹤技術,就是對現實中各種光學現象的模擬。首先用3D模型創建一個場景,然後讓光線在場景裡面按照物理規則自由地反射,最後投射到螢幕上的,自然就是真實而正確的影像。  

回顧遊戲史:在NVIDIA 的即時光線追蹤技術出現之前,遊戲中出現的那些光影是怎麼計算的?

用這種方法來生成圖像,光影效果和現實十分接近,但是想要完整模擬光線的物理特性,運算量實在是太大了。在3D圖像剛發明的時候,沒有電腦能夠處理這種模擬過程。 

為了節省運算量,開發者們想了個取巧的辦法:跳過計算光線的步驟,把3D模型直接「拍扁」,投射到二維畫面上。這麼一來,計算速度就要快得多了。這就是常說的「光柵化算繪」。

回顧遊戲史:在NVIDIA 的即時光線追蹤技術出現之前,遊戲中出現的那些光影是怎麼計算的?隨著技術不斷進步,電腦性能不斷提升,光線追蹤在3D動畫和電影特效算繪中的應用已經比較普遍了。

回顧遊戲史:在NVIDIA 的即時光線追蹤技術出現之前,遊戲中出現的那些光影是怎麼計算的?

但是遊戲想要有流暢的體驗,每秒至少要生成30張以上的圖像,對速度要求很高。所以現在所有的遊戲還是以光柵化算繪為主。 

光柵化作為一種取巧的手段,有很多天生的缺陷。最典型的一個,就是由於省略了計算光線的步驟,同一個場景裡面各種物體之間不會有任何光影關係。一些基本的反射、折射效果,比如鏡面和水面,單靠光柵化算繪是不能實現的。 

回顧遊戲史:在NVIDIA 的即時光線追蹤技術出現之前,遊戲中出現的那些光影是怎麼計算的?

為瞭解決這些問題,遊戲在設計的時候就不得不使用各種各樣的奇技淫巧。比如遊戲中的鏡子,大部分就是把房間翻轉以後在鏡子裡重新算繪一遍。 

《當個創世神》的玩家也會使用這種技巧人工製造遊戲不支援的畫面特效,比如這個「光滑如鏡」的地面,看上去是地面反射了上面的建築,其實是透明玻璃,玻璃下面再倒過把上面的建築再造一遍。

回顧遊戲史:在NVIDIA 的即時光線追蹤技術出現之前,遊戲中出現的那些光影是怎麼計算的?

當然,也有使用所謂的「螢幕空間反射」的技巧,靠複製螢幕上已經算繪好的畫面元素來實現類似的效果,但是這種方法假如做不好,也很容易出bug。

回顧遊戲史:在NVIDIA 的即時光線追蹤技術出現之前,遊戲中出現的那些光影是怎麼計算的?

水面的倒影、金屬的反光,很多都是用立方體貼圖做個假的,看上去和遊戲場景的背景環境環境差不多就行。

甚至有許多遊戲場景裡複雜的光照效果,都是在製作遊戲的時候先用光線追蹤預先算繪好物體受到光照會有什麼表現,合成出一張光照貼圖,等到遊戲運行的時候直接拿這張貼圖來表現光影的變化,來模擬出「光線追蹤」的效果。

回顧遊戲史:在NVIDIA 的即時光線追蹤技術出現之前,遊戲中出現的那些光影是怎麼計算的?

所有這些技巧,想要做到效果說得過去,都需要耗費很多人力和時間。將即時光線追蹤應用在遊戲裡面,不但玩家可以得到加更真實的畫面效果,遊戲開發團隊也可以把精力放在更重要的事情上,而不是去發愁為什麼玩家的臉衝著鏡子的時候會照出後腦勺。 

從寫實遊戲畫面的角度來看,光線追蹤確實是發展的大趨勢。但是現實遠比紙上的理論要複雜,最正確的方案不一定是最好的方案。遊戲行業一項新技術能夠普及,需要開發者和玩家兩方面的認可。 

從玩家的角度來看,現在體驗光線追蹤的成本還是有些過於高昂。以Steam數據為例,擁有高性能顯示卡(GTX1070同等性能及以上)的玩家比例只占不到12%。以現在有光線追蹤功能顯示卡的定價來看,光線追蹤在PC玩家中的普及程度不太可能超過這個數。

回顧遊戲史:在NVIDIA 的即時光線追蹤技術出現之前,遊戲中出現的那些光影是怎麼計算的?

廠商面對這樣的市場開發遊戲,不可能不照顧到使用中低端顯示卡的玩家。傳統的工序一道都不能省,反而要給光線追蹤功能額外做優化。 

類似的情景在好幾年前曾經出現過一次。那時候物理模擬還是個熱門的話題,很多遊戲都在宣傳自己有可以破壞的場景和各種真實的物理特效。NVIDIA順勢推出了PhsyX,一個依靠專門硬體可以對粒子和毛髮效果進行即時物理演算加速的功能。 

回顧遊戲史:在NVIDIA 的即時光線追蹤技術出現之前,遊戲中出現的那些光影是怎麼計算的?

現在回想起來,PhysX的情況和現在的光線追蹤顯示卡有頗多相似之處。同樣被認為是大勢所趨的明日技術,性能表現也同樣不盡如人意。到這個世代,支援PhysX遊戲已經很少。

回顧遊戲史:在NVIDIA 的即時光線追蹤技術出現之前,遊戲中出現的那些光影是怎麼計算的?

有的時候,過於真實的遊戲體驗也不一定是件好事。在《戰地風雲5》裡面,由於畫面比較寫實,有些玩家發現只要穿上迷彩服趴下不動就很難被敵人發現。這當然很真實,但是對於不那麼彪悍的玩家來說,可能就很不友好了。 

回顧遊戲史:在NVIDIA 的即時光線追蹤技術出現之前,遊戲中出現的那些光影是怎麼計算的?

更何況,遊戲的樂趣和遊戲的真實程度從來都不能劃上等號。 

在遊戲中做到即時光線追蹤確實是一項十分重要成就,很有可能會改變整個遊戲業。假如下一代遊戲機支援光線追蹤的話,情況也許也會有更多的變數。但是從目前的形勢來看,期待即時光線追蹤在未來幾年裡面能夠普及,也許還是太樂觀了一點。 

1月28日,NVIDIA發布了他們2019財年第四季度的報告,具有光線追蹤功能的RTX顯示卡銷量低於預期,營收比預計下降了5億美元,也許是這種情況的一個註腳。

使用 Facebook 留言

發表回應

謹慎發言,尊重彼此。按此展開留言規則