在今年的軟件綠色聯盟開發者大會上,我注意到一件特別有趣的事情,網易宣佈和華爲一起實現了手機上的實時光線追蹤!What?! 至少我是很震驚的。光線追蹤不是什麼新技術,但是從去年開始突然變的很火,因爲NVIDIA發佈了支持實時光線追蹤技術的RTX顯卡,微軟也把他加入到了DirectX12中,還有EA等遊戲大廠展示。

平時我們看電影經常被它的逼真特效或CG震撼到,但是遊戲中的呈現效果與之相比要差很多,這其中很大一部分原因就是電影CG採用了光線追蹤渲染所造成的。那麼什麼是光線追蹤呢?簡單說就是一種提高畫質的技術,通過模擬光的路徑,真實地重現光線、材質、陰影和反射,使得畫質更加的逼真。一個物體之所以能夠立體的呈現在我們眼前是因爲光從不同的角度通過直射、反射等方式進入我們的眼睛,如果能夠更好的模擬光照,呈現的效果就會更好。但是這並不容易,需要大量的計算,今年初最火的電影《流浪地球》爲了渲染出逼真的畫面場景,著名特效公司Macrograph定製開發了渲染軟件Queenbee然後租用了大量的雲主機,在高峯時期曾經一次調用1000臺華爲雲主機進行渲染。這樣的計算量只能用在電影中,在遊戲中並不現實。

目前不管是PC上、次時代主機上還是手機上,遊戲主要都是採用的 光柵化(也叫柵格化,Rasterization)渲染,屬於局部照亮,細節靠的是貼圖,想要遊戲做的精美就要非常龐大的素材資源,素材資源也是遊戲大作安裝包的最大的一部分。對於一些靜態的物體提前計算存儲,通過光照貼圖(Light Map)來解決,預計算再多一些還可以做到動態的。

目前的遊戲開發方案已經很成熟了,但是一個遊戲有很多很多的場景,不可能每個場景都做的很逼真,因爲工作量十分的巨大。現在通過一些方式,比如實時光線追蹤+降噪就可以省去很多貼圖資源而且效果更加的逼真。看下圖,左邊部分爲關閉實時光線追蹤的效果,右邊爲開啓實時追蹤的效果,可以明顯的看到差異,尤其是地上水中的倒影。

實時光線追蹤效果確實好,要實現這項技術需要完成哪些工作量呢? Shadows(陰影)、Reflections(反射)等這些都要實現,太難了,所以NVIDIA也是隻有最新的RTX顯卡才能比較好的支持實時光線追蹤技術。

既然實時光線追蹤要求這麼高,PC端實現都很喫力,那手機上是不是完全無法實現呢?也未必。從遊戲的角度來說,手機遊戲與PC遊戲、次時代主機遊戲的要求不一樣,呈現的內容也不一樣,可以做很多的減法;從手機端的性能來說,手機端GPU的性能與PC端有不小差距,但是目前手機端很多遊戲主要是靠CPU來處理並沒有充分的利用GPU,考慮到手機端SoC的異構計算能力要強過PC端,這些喫CPU的遊戲增加GPU的計算一定會表現的更好,所以在手機端要實現實時光線追蹤需要遊戲廠商、手機廠商與芯片廠商緊密合作,從軟硬件的角度一起來優化還是有可能的,當然這個需要一個很長的過程。

根據網易展示的Demo看,遊戲開啓實時光線追蹤後在陰影和反射方面效果還是很突出的,目前網易只公佈了Demo也着重強調了陰影和反射,真正的遊戲產品出來可能還要挺長時間。

最讓我驚訝的是根據網易給出的數據,採用實時光線追蹤後的功耗還降低了,我不清楚這是什麼黑科技,目前也沒有詳細的技術介紹。這給優化的數據真的出乎意料之外,暫時沒想明白道理,希望以後有機會當面向華爲的工程師請教這是如何實現的。

目前PC端支持實時光線追蹤的遊戲也只是一部分場景實現了,完全的實時光線追蹤還不太現實,手機端在部分場景採用部分技術再經過遊戲廠商和硬件廠商的優化實現部分的實時光線追蹤我認爲是可能的,可能計算的精度也更低一些通過降噪算法來彌補。

相比於遊戲開發商我更期待硬件方面的提升,NVIDIA在RTX顯卡中加入了RT Core專門處理實時在線追蹤,之前Imagination宣稱自己的PowerVR GR6500實現了實時光線追蹤卻也沒了後續。華爲通過與網易合作探索手機端的實時光線追蹤可以讓華爲對這方面有更深入的理解,這裏不妨做一個猜想,在硬件條件不變的情況下華爲與網易實現了實時光線追蹤,應該在軟件和驅動層面進行了優化與改進,想要真正的做好實時光線追蹤硬件基礎還是必須的,以後未必不會開發出手機端的"RT Core",值得期待。

不管是遊戲廠商還是手機廠商,想要有好的遊戲體驗,支持新的技術必須要做提前做準備,網易和華爲的研發合作是一個好的開始。對於遊戲廠商來說,讓遊戲變的更好玩兒是最重要的,在此基礎上畫質的提升也是必須的,對於硬件廠商來說,更準確的理解需求推出更好的硬件平臺是實現一切的基礎,對廣大遊戲玩家來說,相信美好的事情一定會發生就好了。

相關文章