10年流行的手游是《憤怒的小鳥》《忍者切水果》。
10年后的今天流行的手游是《王者榮耀》《和平精英》《原神》。
10年間主流手游最大的改變來自于畫面畫質的改變。隨著手機配置越來越高,手機游戲的畫質有更多的空間放飛自我,甚至開始向PC看齊,這也是會出現《原神》這種橫跨手機、PC、主機多平臺游戲的原因之一。
但是手游進步的同時,端游的畫質也在進步。近幾年間,得益于光線追蹤技術,《我的世界》、《賽博朋克2077》、《看門狗:軍團》等PC、主機游戲營造的虛擬世界,除了游戲自身的可玩性,游戲畫面也因此變得更為震撼和沉浸。
那么有沒有一種可能,讓手機游戲也跑一個光追,獲得能夠媲美PC級別的游戲畫質呢?
有。
讓畫面更為逼真和寫實
光追,全名為光線追蹤,這個名字來自于英文“Ray Tracing”, 不過真正讓光追概念走進千家萬戶的還是英偉達在2018年推出的新款“煤氣灶”——RTX20系列顯卡。之前由于硬件性能不夠,光追主要用于電影、動畫等不需要實時渲染的影視領域。
在圖形渲染的過程中,光追是用來確定不同元素可見性的渲染方法。它的原理是從玩家的視角發射出一道光線,打到屏幕上的某個點上,然后光線根據反射面的表面特點,進行反射、折射、吸收等計算,進而構建出更逼真的畫面。
例如主角在鏡子面前刷牙,天花板上的燈光照在臉上,透過皮膚反射的光會再度反射到鏡子、墻壁等物體上,然后這些物體又會在進行一輪反射,最終將光線多次反射的畫面送達到用戶的眼中。光線追蹤就是想模擬這個情景,追蹤每條光線的傳播行為。
目前實現光線追蹤主要有兩種方式:
一個是光線追蹤實時渲染,模仿真實光線的傳播行為,給很多光影效果的模擬提供巨大的便利,在物體陰影上,在鏡面反射的內容表現上,光線追蹤都能以很自然地方式去模擬。相對的,但由于需要實時計算光線反射,重復計算量大,對硬件性能有著非常高的要求。
左邊為光柵化的原理,右邊是光線追蹤路徑
另一個是光柵渲染,查出畫面中哪些像素需要渲染,然后用GPU按需要對像素渲染計算即可,相當于一個蘿卜一個坑,在同一時間里只要計算一次即可,減少內存傳輸。不過為了更逼真的渲染效果,光柵渲染需要使用非常復雜的算法和大量的中間渲染對象來模擬高級效果,這就涉及到算法的復雜性和內存管理問題,增加了渲染器的編寫和維護難度。
值得注意的是,上述兩種方法并非對立,可以共存應用,現在PC平臺上支持光追的游戲大多是兩種渲染技術混合實現,相輔相成。
可以看到,PC端開啟光追之后的游戲畫面會有更為貼近真實生活的光線效果,在鏡面較多的場景會有更為明顯的對比。但也因為如此,有些光追場景不一定會如想象般更亮,也有可能會更暗,例如在光源較少的游戲場景。
所以開啟光追之后,是可以讓游戲畫面更為震撼、逼真和寫實。或許是出于同樣的原因,現在手機行業有意將光追的功能引到智能手機上。
“手機游戲端游化”
光追出現在電腦游戲領域是因為硬件性能上升,同樣的事情其實也發生在手機處理器上。
近幾年,隨著手機處理器GPU以及異構計算能力的逐年提升,“手機游戲端游化”的概念越來越多地被廠商提起。但是手機和PC不一樣,前者有非常嚴苛的功耗約束,即便搭載一顆性能強勁的旗艦芯片,也不一定敢讓其火力全開,自然也不可能近乎隨心所欲地調整功率,而且受限于手機空間大小,像PC那樣安排散熱也不太現實。
相比PC激進的性能和硬件搭配,智能手機則有點反其道行之。例如華為和榮耀的GPU Turbo、高通的VRS可變幀率渲染等,都是在保證游戲性能的前提下,盡可能降低系統負擔。
但在這樣一個前提下在手機上引入光追,會帶來什么樣的體驗或者說如何實現,實際上是很有意思的話題。
既然硬件級光追渲染門檻太高,那就走軟件。
在2019年,網易聯合華為在《遇見逆水寒》上實現了光線追蹤,當時介紹了兩種光追特效的應用,即軟陰影、磨砂鏡面反射。在官方的演示視頻中,開啟光追之后較原來的畫面會有比較明顯的差別。
最重要的是開啟光追后的功耗,根據網易的幻燈片,在實現同樣的反射效果時,實時光線追蹤的耗電和性能表現都要比光柵化更出色。
例如在這個照鏡子的場景中,《遇見逆水寒》使用的光線追蹤和光柵渲染時的每一幀耗電分別是15.84mA19.04mA,但是當場景中有多個鏡面的時候,光線追蹤和光柵渲染時的每一幀耗電分別是19.7mA和63.43mA。
盡管對比PC來說,上述場景并不復雜,甚至有點簡陋,但畢竟是在手機上實現的。當時這段演示是基于麒麟990平臺,這款芯片的GPU模塊是 660MHz 的 ARM Mali-G76 MP16,性能僅相當于臺式機Radeon RX 5700 XT 的5%不到。
所以《遇見逆水寒》的實現方式大概率是以軟件方式解決,直接使用GPU的通用計算單元來實現光追,而不是像RTX那樣通過硬件光追內核加速實現。
之后在2021年,天諭手游通過集成華為的HMS Core Scene Kit,突破了實時光線追蹤技術在移動平臺上的算力局限,實現了60fps、1080p的高幀率,高畫質表現。這意味著,開啟光追之后,依然可以有出色的游戲體驗。
天諭手游+華為光線追蹤渲染技術
盡管無法與PC平臺相媲美,這至少說明在旗艦手機上已經可以實現初步的實時光線追蹤處理。現在智能手機光追除了技術發展,同時又開始越來越趨于平臺化,讓盡可能多的開發者參與到光追的開發。
2020年12月15日,Khronos Vulkan光線追蹤工作小組——TSG,Tay Tracking Task Sub Group宣布推出新版本的Vulkan SDK,光追渲染API被正式納入其中。
2021年10月14日,聯發科正式推出基于Vulkan擴展的移動端光追SDK解決方案并與ARM和騰訊游戲共同實現了移動端實時光線追蹤技術的首次演示。
這兩個SDK都是對外開源,基于Vulkan 的開源光追技術在業界標準上兼容了更多設備,同時也方便開發者接入。但是這并不代表手機廠商可以等現成,相反還有不少事情要做。
OPPO光線追蹤演示
在去年OPPO開發者大會上,OPPO也推出了自己的光追渲染技術,既然已經有開源技術方案,手機廠商為什么還要開展光追技術研究?
首先,除了基于Vulkan的SDK,其他游戲引擎廠商例如Unity,也會推出自己的光追引擎,不同的游戲開發商會根據不同的游戲引擎開發游戲,勢必會形成不同層次的光追效果、性能要求、功耗要求;其次,游戲開發后要對接不同性能層面的手機芯片平臺。
如果手機廠商不下場研究,恐怕難以平衡、調校由于不同游戲引擎、不同性能芯片造成的體驗差異,所以反而更需要廠商盡快了解手機光追對芯片的基本要求。
另外,手機廠商對于光追的把握其實也會反哺到游戲廠商身上。光追很好,但是對于游戲廠商來說未必是一個高性價比的選擇,因為做了可能因為硬件性能不夠感知不強,可能還會影響到手機游戲本身的運行,在現實中他們會采用更加保守的策略。
如果手機廠商對光追有足夠的把握,用戶可以從中感受到光追帶來的體驗升級,讓游戲廠商有利可圖,自然也有更大的驅動力去對游戲進行升級,甚至可以讓廠商與游戲廠商一起推動游戲引擎運營、開發升級,最終落實到硬件層面上,打造一個較為統一的行業標準,帶動全行業受益,讓手機光追不僅僅是一頁PPT,而是隨手打開一個游戲就能感受到的體驗升維。
手游需要光追嗎?
在最初的思路中,我以為這會是一個靈魂提問,人有時候是需要一個強硬的理由說服自己需要這件新事物,但是在長期的思想斗爭中,我完成了思想閉環。
“我玩手游需要光追嗎?”這個問題的回答則取決于手機廠商、游戲開發者能夠提供何種光追游戲效果,是否會影響高畫質、高幀數的前提。從更為宏觀的角度來看,生產決定需求,當光追的“生產”到位了,“需求”自然就會順利地打開。
但是聯想到現實中,這個思想閉環似乎又有一點崩塌的危險,因為目前國產手機廠商在性能方面有更重要的事情要做。在兩年前,《王者榮耀》、《崩壞3》渲染畫質是可以達到1080P,甚至1080P+,但是今天部分手機為了平衡功耗和發熱,游戲渲染分辨率恐怕只有720P,當然這也不能全怪手機廠商,畢竟就只有一碗飯,你不吃也得吃。
所以,降低功耗和發熱,恐怕才是當前智能手機先要解決的問題。相較之下,游戲手機似乎更有條件去追求手機光追,這也未嘗不是游戲手機區別于常規手機的方向之一。
當然,光追對于用戶來說,意義不止于游戲,還可以用于提升系統的視覺效果,制作更華麗的主題或壁紙,讓手機界面的精致程度再上一個臺階。如果硬件性能足夠,自然也能用于AR、VR領域。
隨著之后手機處理器性能越來越強,光追或許會像曾經的高刷新率一樣,逐步成為手機上的標配。但如果要這一天盡快到來,手機廠商還是要盡快解決手機光追的商業化,足夠多的應用層才能真正意義上推動手機光追的落地,讓盡可能多的用戶可以在手機端上感受光追帶來的新奇游戲體驗。