起初,神想要世界,於是程式設計師創造了天地。地是空虛混沌,淵面黑暗。神的靈運行在世界裡卻看不到周圍,於是神說,要有光。結果程式設計師們在天地表面撒上了金銀粉,把空虛混沌染上了各種顏色,然後騙神說——這裡有了光。程式設計師去掉了神身後的金銀粉,讓其露出了淵面的顏色,然後再次騙神說,光和暗已經分開了。神挪動自己的腳步,程式設計師便對應的改變淵面的範圍,神看影子動了,以為光與暗真的分開了,非常高興。
——《特效消耗是無盡陷阱?遊戲畫質現狀解析》
在遊戲世界的光影之戰當中,程式設計師一直在與上帝或者說自然規律進行著激烈的對抗。為了規避繁瑣的數學模型和計算過程,程式設計師們在相當長一段時間裡都選擇由自己來扮演上帝的角色,他們沒有採用更準確真實的光線與物體交互結果,而是使用較為簡便的近似模型甚至直接將自己認為正確的光線照射結果和陰影放置在他們認為正確的地方。
隨著需求的進步,我們對遊戲真實度的要求越來越高,程式設計師所採用的甚至是上世紀六七十年代的各種渲染模型已經越來越多的顯現出了問題。光線與物體表面的正確關係、陰影的位置、亮度和明暗的表現以及材質與光影互動的結果在現有的環境下都難以做到「真實」的要求,這就導致了一個尷尬的結果——技術越進步,我們的需求越提升,我們所能夠獲得的視覺特效就卻容易出現「奇怪的問題」。
目前的常規渲染技術已經達到了效果的瓶頸
最終,程式設計師妥協了,他們接受了物理規律統治世界這個簡單的事實,以簡化模型處理甚至安置陰影和安置光線都不靠譜,唯一的選擇只有使用基於更全面準確的物理模型來處理像素。於是,建立在「計算陰影」和「計算光線」這一基調下的新型渲染方式來了,這種渲染方式就是我們今天要介紹的Physically Based Rendering(PBR)。
以自然規律之名
PBR的定義正如其名所言,就是「基於物理過程的渲染」。在PBR框架下,每一種特效都將使用更貼近自然規律甚至是直接描述自然規律的算法來建立,對應的材質也要根據特效及現實視覺結果來進行修正和升級。透過PBR,人們可以實現更加貼近真是自然視覺結果的PC遊戲/CG特效。
PBR技術的本職任務在於實現更真實的特效
人類對於圖形真實度的處理,其實歸根結底就是對顏色的處理。在計算機圖形領域,這樣的動作也就變成了對像素顏色的處理。如果要圖像質量更高,像素顏色的正確性是最根本的基礎。而像素的顏色,背後其實就是一整套光線/陰影與物體表面進行互動的物理過程。以數學語言來描述這樣的過程,令其能夠包含所有必要的物理細節,這就是PBR最基本的任務。
傳統的反射著色模型所基於的函數
PBR其實並不是一個邏輯複雜的過程,它更像一杯由各種數學公式組成的雞尾酒。比如說要描繪正確的高光過程,一個實用的PBR實例就是將施利克的菲涅耳係數與基於施利克-史密斯的視覺函數來進行組合(實例源自CCP的EVE Online)。通過將複數的描述物理過程和結果的算法進行組合,PBR最終能夠具備賦予像素正確顏色的能力。
新的基於PBR的數學模型
其實在漫長的圖形技術進化過程中,PBR所做的工作一直在被程式設計師們進行著,從光錐陰影到softshadow,再到最近日趨火熱的AO過程,這些技術進步其實都是對算法模型的改進。但相對而言,傳統的做法往往集中在某個特定的有針對性的領域,比如說陰影當中,或者往往只考慮了像素的處理,所以並不能解決所有問題。PBR除了為整個渲染過程搭建了一個能夠整合的框架,令更多像素細節能夠有機會在改進算法和物理模型的作用下呈現更正確的顏色之外,最重要的改進還在於建立了更加完備的、解析度更高同時能夠與經過PBR修飾的光影效果更正確互動的材質庫。
PBR過程(前)與傳統過程渲染(後)結果對比
即便是基於複雜的Shader過程,現代圖形渲染的像素修飾對圖像的影響力依舊有限,更多更精細的視覺效果必須以優秀的材質為基礎。如果要想在PBR的框架內表達更正確的視覺效果,根據基於物理過程改良之後的新Shader特性重置精度更高且更加貼近自然效果的材質是必須的過程。所以在PBR框架下,無論遊戲還是CG渲染的材質庫都需要進行重置和更新。這項工作可以由遊戲開發者來完成,也可以經由聯盟的形式來進行,包括Autodesk以及Adobe等巨頭在內的多家公司已經組成了一個新的聯盟,專門負責為3DS MAX、MAYA和AutoCAD等提供不斷更新的基於現實環境視覺效果的材質。
今天的一小步
PBR能夠給遊戲製作,特效呈現以及CG帶來許多有益的進步,它為遊戲開發者帶來了一個能夠提升視覺特效的整體框架。在基於PBR的體系當中,無論是經由Shader實現的光照、陰影或者色彩變化,還是物體表面的材質特徵都將會有非常大的提升。我們所獲得的實際遊戲效果將會因此而進一步得到改善,同時基於CG特效的影像製作過程也將會更加高效和準確。
EVE等一系列現役遊戲都將列裝PBR
PBR還帶來了一個額外的好處,它能夠成為既有技術與未來的良好銜接。我們知道,基於光線追蹤等手段的新一代渲染方式都建立在複雜而且嚴謹的數學體系之上,其正確度和複雜度遠非當前基於近似甚至人為模型所能比擬。PBR將更為嚴謹的數學體系有系統的納入到渲染過程當中不僅能拉近兩者之間的距離,同時還可以在CG製作等過程中協助光線追蹤取得更準確的結果。
PBR從某種意義上來講有助於光線追蹤的更快到來
當然,目前的PBR還不是盡善盡美的。儘管更為嚴謹物理模型的引入帶來了更好的效果,但對應的算法複雜度也發生了成倍甚至數倍的提升,基於嚴禁模型的Shader Program將會給顯卡的處理能力和效率提出全新的挑戰。除此之外,更高解析度的新材質不僅同樣會給顯卡帶來壓力,還會給遊戲製作者帶來新的負擔。有得必有失,平衡才是這個世界的真理。如何處理好其中的關係,將會成為硬體供應商以及遊戲製作者共同面對的挑戰。
這樣的遊戲效果在未來並不是夢
以目前的參與程度來看,PBR在未來必將成為大勢所趨,基於PBR的遊戲已經開始出現,諸如EVE online等現役遊戲的更新預示著遊戲引擎對PBR的大量部署已經開始。相信在不久的將來,我們將會看到更多擁有基於PBR過程打造的真實遊戲畫面的骨灰級遊戲大作。