現代遊戲裏,物體的影子已經是隨著遊戲裏的光源實時變化了啊,英偉達出的這個技術有什麼特別之處嗎?為什麼要出一個遊戲裏已有的功能呢?


其實我勉強作為半個業內人,有時候也經常會有類似的疑問。

這個問題分兩個部分來看:

對於遊戲行業來說,我的看法是,畫面提升不顯著。我在另一個答案裡面已經說過,實時渲染髮展到現如今的地步,已經出現了比較明顯的邊際效用,即單位算力能夠提升的視覺效果已經越來越小。即使我作為一個圖形程序員,如果不逐幀去分辨,或者通過閱讀各個會議上各家的分享,也很難分辨近幾年3A大作在視覺效果上的細微差異,若是拋開動畫技術的演進,單看靜幀畫面更是如此。

上面我挑了五款以畫面見長的3A大作,依次是《教團1886》,《神祕海域4》,《地平線:零之黎明》,《底特律:変人》,《死亡擱淺》,發布日期按照15~19年排序,其中《地平線:零之黎明》和《死亡擱淺》使用的是相同的遊戲引擎,拋開遊戲畫風的不提,你能夠輕易地說出哪一款遊戲畫面更好嗎?

實際上,近幾年遊戲引擎的發展更多的側重於引擎的性能提高、架構和工具鏈的易用性,圖形方面並沒有太多巨大的進步:已有的技術已經能夠解決大部分問題,不能實時解決的問題可以通過預計算解決,實在不行美術還可以在場景設計的時候想辦法規避。就像題主說的,像是實時光影已經早就比較好的解決了,那RTX在遊戲方面有什麼厲害之處呢?兩個方面:一是針對現有實時技術的改進,比如提升傳統陰影、AO(環境光遮蔽)、反射方法的效果,比如下面這個SSAO和Ray traced AO的效果對比:

可以看出Ray traced AO對於較遠處的遮擋物表現更好

二是使得離線演算法變成實時或者半實時演算法成為可能性,提高遊戲製作者的生產力,比如基於GPU的烘焙器能夠比CPU的烘焙器快數十倍,這個差異是很大的。現代3A大作對遊戲內容的豐富度要求越來越高,生產力就意味著更少的時間製作出更多的可遊玩內容。

其他行業來說,RTX ON意味著製作成本的降低和更多的可能性,比如影視行業和建築設計行業,從前需要數千臺渲染農場搞定的渲染場景,現在只要數百臺機器,對於那些對畫質要求稍低一些的作品,甚至一臺RTX顯卡的機器就能夠滿足。這也使得原本為遊戲設計而生的遊戲引擎能夠更多地服務於這些行業,近年來Unreal引擎新的粒子系統Niagara,新的物理系統Chaos,對於動畫系統的改進,以及最近收購人臉捕捉的技術公司Cubic Motion,都能體現出它對於這些行業的野心。除了遊戲引擎外,Adobe,Autodesk這類傳統的設計軟體公司也在積極利用RTX技術改進傳統製作流程。

總的來說,我覺得RTX帶給觀眾/玩家看不見的提升要遠遠多於看得見的提升


(部分圖片來自網路,侵刪)

當然不是隻影子的事兒了,當然,如果你把水面反射到的東西、鏡子裏的東西也叫影子的話,那當我沒說。

舉個最簡單的例子,光追卡剛上市的時候,只有一款遊戲支持光線追蹤,當時就有一個經典截圖

可以看到,你不開光線追蹤也會有反射,但是他反射的東西與周邊環境無關,這個反射是假反射,當然也不是單純的假反射,只是有限的真反射,這個一會細講。

我們從這個圖中可以看到,左邊有一團火,火焰在遊戲中渲染是挺消耗資源的,以往的遊戲沒有光線追蹤,所以輻射無法正確的反射出這團火,這團火發出的光也無法正確的照亮周圍的場景。

在理解這一點之前,我們先來理解一下什麼叫反射。

根據初中物理,反射的入射光線和出射光線與法線的夾角相等。

紅線是光線,黃線是法線,法線與物體表面垂直,這個時候,角a與角b相等。這叫入射光線和出射光線與法線的夾角相等,很多人會有一個錯誤認識是認為反射光線入射光線之間的夾角是90度,這是錯誤的,我甚至在我們做3D的人中發現過此類問題。

如果我們有紅綠藍三條入射光線,它們分別會向哪個方向反射呢?

大家可以自己想著畫一下,應該是怎樣的。

正確的應該是這樣

紅的來紅的去,綠的來綠的去,藍的來藍的去。

兩個紅角相等,兩個綠角相等,兩個藍角相等。我畫的分別是紅60度,綠40度,藍20度,沒有哪兩條出入射光線之間的夾角是90度的,也就是沒有哪兩條出入射光線是垂直的。我沒畫出來的角中,只有45度的兩條光線之間的夾角是90度垂直的。

如果我們有一個光源d,我們通過鏡面物體表面可以看到光源的一個反射的虛像,因為反射的原理決定了,你在不同的位置看這個反射,反射虛像的位置雖然不會變,但在物體的表面會發生位移。

當你觀察的點從a點移動到b點,反射的圖像就會從a』移動到b』位置。

這說明瞭什麼呢?說明瞭你在不同的位置看到的反射是不同的,或者你往物體的不同表面看到的反射也是不同的。假如這面鏡子不是這麼大,只在b』位置有很小一塊,那麼你就只能在b看到光源的反射虛影,而在a位置就一定看不到

假如鏡子就只有白線那麼大,那麼就只有在b點附近才能看到反射的光源,而在其他位置都看不到。

如果天上有一朵雲(原諒我的靈魂畫法,我懶了,直接用的Win10的截圖工具),地上有一面鏡子,鏡子只有那麼大,你通過鏡子能看到的就只有橙色那一半,黃色那一半是不能通過鏡子看到的。

好,光的反射這部分我們瞭解了,下面我們來講下光線追蹤是怎麼回事。

最早的遊戲,因為硬體太弱,在模型上只能貼最基本的貼圖,連反射都不能有,比如最早的CS

圖片出處見水印,侵刪

從這張圖片上可以看出來,物體只有最基本的貼圖,沒有任何質感,很假。

後來人們發現,顯卡強一點了,但還是達不到能有漂亮的反射的地步,但有些東西是要反射的,所以呢,就在貼圖上畫反射,畫完了再貼回去。如果玩過手遊戲和平精英的,可以自己試一下,帶沒有皮膚的一級頭,然後你去跑,轉視角,你會發現那個頭盔也會有反射,但是這個反射就不對,為什麼呢,他不管在哪兒,你的視角如何,他反射的東西是一樣的,全是樹林,就算你在城區也是一樣。很久沒玩了,不知道改了沒有,大家可以試試。

你不管走到哪兒,這個反射都是不變的,他自己本身是一個小動畫,你不管在哪兒,這個動畫都有一棟樓和一圈樹。

再後來人們發現顯卡又強一些了,可以計算一些反射了,但是還是不能計算全部的反射,只能計算一些簡單的鏡面反射,模糊反射還是計算不了,而且,傳統光柵化渲染只能渲染場景中相機看得到的部分,而看不到的是無法出現在反射中的。

NV的實時光線追蹤是把原來的光柵化轉為光線化,讓不出現在畫面中的物體也能實時影響到畫面中的物體。

有過室外攝影經歷的,或者拍過婚紗照藝術照的朋友應該會對反光板有體會,可以拿來理解

總之,光線追蹤就是為了實現真實的反射。

除了反射更真實外,也會使影子變得和原來不一樣。

右 邊人物背後因為被人擋住了,所以更暗,人物面部也因為正確的光照而顯得更立體更有質感。

也就是說雖然都是影子,但影子和影子也不一樣,光線追蹤下的光影更加豐富與真實。

除了會讓影子更真實外,還可以讓光線的傳遞更加真實,我們可以想像一下白天的時候,室內並沒有開燈,但卻也能讓我們看清楚東西。以往的全局光照並不能真實的照亮場景,而光線追蹤可以讓室內也充滿光線。

也可以說是讓陰影有更豐富的變化,更透氣。

總結來說,實時光線追蹤帶給我們的是革命性的變化,它讓光影更真實,也讓遊戲畫面更加真實,給我們帶來更強的沉浸感。這項技術是必然的發展趨勢,現在不但NV家的顯卡支持實時光線追蹤,AMD家的顯卡也將會支持,並且Xbox、Playstation等主機也都將支持這項技術。甚至有很多3D渲染軟體也在利用這項技術帶來的好處。雖然目前的光追顯卡效能還不高,但在可預見的未來這項技術一定會被發揚光大,再過幾年,我們一定會玩上更多更好玩的光追遊戲,甚至到那個時候可能沒有人能接受不支持光追的遊戲了。


原理上@&李響& 的回答說得很清楚了,這裡補充說一下「影子」。

傳統遊戲的光影效果是模擬而已,很死板的,很多效果並不能完全實現。

不同形狀的光源,不同距離的光源,不同角度的光源,不同顏色的光源,移動的光源,多個光源,不同形狀的物體…在我們現實中都是不同的。但遊戲裡面幾乎都是一個效果。原理就不解釋了,學過高中物理的都應該知道,沒學過的自己日常觀察也不難吧?

貼個官方的視頻,自己感受一下:

nVIDIA的光線追蹤演示視頻木頭龍的視頻 · 1.5 萬播放

如果你對遊戲的相關圖形技術有所瞭解,應該會知道遊戲畫質已經很久沒有實質上的提高了。PS3/Xbox360時代開始出現的法線貼圖、環境光遮蔽、動態光照、體積光等,當今依然是提升遊戲畫質的法寶。時至今日,遊戲的建模越來越精細,貼圖越來越高清,但觀感上始終和電影特效有著天塹般的落差。

NV放出的使用大量光線追蹤技術的《星戰》Demo,實時渲染畫質接近電影級,然而這並不是遊戲

遊戲畫面已經多年止步不前?

在談論光線追蹤技術普及之前,我們先來瞭解一下當前遊戲相關的圖形技術,說說為什麼光線追蹤能給遊戲畫面帶來本質上的提升。

目前的遊戲讓3D圖形呈現在玩家面前,所使用的技術叫「光柵化」。光柵化是一個比較抽象的概念,大家可以簡單理解為3D圖形的2D化,將3D模型拍扁了,就變成2D了——我們在顯示器看到的畫面是2D的嘛。遊戲進行3D建模(矢量圖形)後,將模型投射到屏幕的2D像素點上(光柵化),3D矢量圖變成了2D的點陣圖,這就是大家在顯示器看到的畫面。

光柵化的簡單示意圖,將3D空間的矢量圖形投射到平面上,成為2D柵格點陣圖

在這個過程當中,矢量圖形變為柵格點陣圖,點陣圖大小以像素點數量來衡量,因此解析度越高、處理越複雜(例如抗鋸齒)對顯卡光柵單元ROPs要求越高。因此大家可以觀察到,ROPs比較少的顯卡,在高解析度和高倍抗鋸齒下跑遊戲,性能不盡如人意。

要讓遊戲畫面變得逼真,除了建模精準以外,還需要明暗/顏色精準,不然畫面就只是白花花的一片剪影,誰也看不出那到底是啥。而遊戲畫面的著色,是在Raster Operations也就是光柵操作過程當中完成的。在光柵化的過程當中,會為2D圖像的像素分配額外的信息,例如深度、顏色等等,接著顯卡再根據這些信息給像素進行渲染上色,最後我們就可以看到立體的圖像了。

一個簡單的渲染流程示意圖:確定3D頂點→3D建模→光柵化→像素著色→2D圖像

換言之,遊戲畫面的光柵化渲染著色,大致相當於是以3D建模為依據,描繪出了2D的線稿(形狀),然後再根據各種信息往稿子裡面填色。基於這個原理,很難做出非常擬真的光影效果。目前大家在遊戲當中看到的光影效果,往往是利用光照貼圖(Lightmap)來模擬的。舉一個很簡單的過程作為例子,例如某片像素的深度信息告訴電腦,這裡能不能被光線照到,然後電腦就決定為這片像素貼上半透明的黑色/白色的光影貼圖,模擬出陰影/亮面,就形成了簡單的光影效果。

遊戲畫面之所以有立體感,光照貼圖居功至偉,但這並不能獲得完美的效果

很多情況下,遊戲中的光照貼圖是預先烘焙好的,也就是說光影並不是實時計算出來的。儘管很多遊戲帶有燈照、火光乃至天氣之類的系統,光影會產生變化,但這依然只是預先渲染好的光照貼圖,只是根據不同的情況貼不同的圖而已。

例如近幾年流行的環境光遮蔽,實際使用的往往是帶有指向性的光照貼圖;而體積光,則可以簡單看做是帶半透明模糊處理過的貼片;而物體表面凹凸不平造成的高光和陰影,實則是法線貼圖模擬的。這些手段都可以提升畫質,但從原理來看也只是花式貼圖而已。基於此,遊戲畫質已經很久沒有出現質的突破了。

光線追蹤能給遊戲畫質帶來質的提升?

用貼圖來模擬光影,這讓遊戲畫面的光影效果有很大的侷限。例如,我們知道在不同角度看一個物體,它的光影很有可能不一樣,典型的例子就是鏡面/水面反射。但由於目前遊戲的光影不是即時計算的,因此很難做出完美的模擬——想必大家也沒在遊戲中見過打碎一塊鏡子,玻璃碎片還都能繼續當鏡子用的情況;而現在很多遊戲雖然做出了水面倒影,但在某些角度倒影會消失不見,這些案例就是這個道理了。

為何《戰地》的光線追蹤演示會強調車體鏡面反射火光?因為傳統的貼圖很難做到這點

再例如,目前的光照貼圖對漫反射的模擬也並不出彩。如果大家有接觸繪畫,應該知道寫實繪畫不僅需要考慮物體的固有色,還要考慮光源色和環境色,其實這就是漫反射的處理,處理好了漫反射的畫才足夠寫實、生動。但由於遊戲的光影效果是貼圖,因此很難對物體之間光線漫反射造成的顏色變化,進行非常精確的模擬。儘管可以通過一些像素處理技術,來模擬像素之間的顏色影響,但效果依然有限。

遊戲往往會用預先準備的貼圖來繪製亮部、暗部(例如眼窩、耳廓的陰影),無法精確模擬光影變化

這幾年來遊戲畫面越來越精細,但大家始終覺得遊戲畫面和現實相比,仍顯得生硬,這是由於貼圖始終無法完美模擬各種光線反射。遊戲畫面的擬真,顯而易見已經遇到了瓶頸——現在的遊戲畫面對比的《孤島危機》,有質變的提升麼?《孤島危機》誕生於2007年,用《孤島危機》對比它五年前也就是2002年的遊戲,再用現在的遊戲對比距離現在十多年前《孤島危機》,不能難發現最近十幾年遊戲畫質提升之小,是遠慢於之前的。而光線追蹤技術,則是畫質瓶頸的破局之道。

2007年的《孤島危機》畫面,現在的遊戲對比這十年前的遊戲,畫質並沒有質的突破

顧名思義,光線追蹤技術能夠追蹤光線的生成、反射、遮蔽、消失,繼而實時生成光影。這次,光影終於不只是用貼圖貼出來的了,而是真正去模擬一束光,在場景中到底能產生怎樣的色調、明暗。這樣得來的光影效果,肯定比預先製作的光影貼圖來得更加可信,畢竟你無法為無數種光照情況都準備相應的貼圖或者貼圖的變化。從原理上來看,光線追蹤技術無疑能為遊戲帶來更高的畫質上限。

光線追蹤纔有可能模擬出如此豐富且逼真的光影

在發布RTX系列顯卡的時候,NV已經放出了光線追蹤的演示,效果大家也有目共睹。開啟了RTX光線追蹤後,車門能給實時映射出火光,而水面也能隨時隨刻映射出倒影。而關閉了光線追蹤後,車門的火光水面的倒影皆消失殆盡,一切都變得平淡起來。

不過,目前階段的光線追蹤遊戲,實際上並不是全局使用光線追蹤的。由於性能等方面的限制,光柵化仍必不可少,RTX顯卡只能提供混合渲染。

目前階段的遊戲並不能做到全局實時光線追蹤,而是混合渲染,光線追蹤儘管很美很吸睛但並不完整

如此一來,美工就顯得相當關鍵。同樣的圖形技術,不同的美工打磨效果會截然不同。例如同樣使用環境光遮蔽,《神祕海域4》的畫面氛圍就比普通3A大作高出一個檔次。在什麼地方使用光線追蹤才會有最好的效果?對於一個新應用於遊戲的圖形技術,這是一個值得深究的課題。這些嘗鮮的光線追蹤遊戲,會不會靜下心來打磨美工,以讓局部的光線追蹤發揮出應有的潛能?如果廠商對於光線追蹤的態度只是賣噱頭,恐怕最終成品並不如人意。

如果不能細心打磨不完整的光線追蹤,恐怕最終效果還不如傳統渲染的《神海4》,只會徒費性能

總結

毫無疑問,對於遊戲而言光線追蹤是革命性的圖形技術。但一種圖形技術在何時普及,不僅需要硬體廠商自身的研發,也要考慮歷史的進程。希望新一代遊戲主機PS5、XBOX SX能夠讓業界更迅速地跟進光線追蹤技術,讓遊戲畫質跨入新時代吧!

發佈於 2020-04-10繼續瀏覽內容知乎發現更大的世界打開Chrome繼續Xi YangXi Yang每天喫三斤GV971

傳統管線渲染的影子是假的,是化學成分的,都加了特技。不提原理,它很難(以可接受的計算量)完成這些現實世界稀鬆平常的效果:

  • 離遮擋物越近越銳利,越遠越柔和。
  • 由有體積的動態光源投射出來。

這還沒有提到環境光遮蔽、模糊反射這些傳統上由屏幕空間瞎蒙的玩意,還有高光反射這種需要立方貼圖的玩意,現在都可以從場景裏真實計算得到。


傳統管線渲染的影子是假的,是化學成分的,都加了特技。不提原理,它很難(以可接受的計算量)完成這些現實世界稀鬆平常的效果:

  • 離遮擋物越近越銳利,越遠越柔和。
  • 由有體積的動態光源投射出來。

這還沒有提到環境光遮蔽、模糊反射這些傳統上由屏幕空間瞎蒙的玩意,還有高光反射這種需要立方貼圖的玩意,現在都可以從場景裏真實計算得到。


推薦閱讀:
相關文章