PBR全稱(Physicallly-Based Rendering)。籠統的說(shuō),就(jiù)字面含義可以看出,這(zhè)是一(yī)種基于物理(lǐ)規律模拟的一(yī)種渲染技術。最早用于電影的照片級真實的渲染。近幾年由于硬件性能(néng)的不斷提高,已經大量運用于PC遊戲與主機遊戲的實時(shí)渲染。
在PBR(Physically Based Rendering)的概念出現(xiàn)前,若想渲染出一(yī)張高質量的圖,需要機械化(huà)的死記各種參數,反複調節光照來(lái)讓材質表現(xiàn)效果看上(shàng)去比較真實。然而由于傳統渲染器(qì)這(zhè)種“真實”是基于烘焙貼圖來(lái)實現(xiàn)的,因此環境光、物體(tǐ)位置必須保持不變。人(rén)們當然不滿足于一(yī)張定格的畫面,尤其是在遊戲引擎中,因此催生(shēng)了(le) Physically Based Rendering 這(zhè)種渲染方法,PBR問世後拯救了(le)千千萬的CG工作(zuò)者,從此隻需分(fēn)析物體(tǐ)自身(shēn)物理(lǐ)屬性即可,無論物體(tǐ)位置、光照如(rú)何改變,你隻要給模型正确的參數設定,它必然不會出錯。目前很多三維軟件已采用了(le)PBR,如(rú)Blender、C4D、Houdini 等,它是實時(shí)渲染的基礎,所以今後三維軟件的發展趨勢絕對離不開PBR。
基于物理(lǐ)的渲染(PBR)是指使用逼真的陰影/光照模型以及測量的表面值來(lái)準确表示真實世界的材料的概念。 PBR更多的是一(yī)個(gè)概念,而不是一(yī)套嚴格的規則,因此,PBR系統的确切實現(xiàn)往往會有所不同。
PBR工作(zuò)原理(lǐ)
了(le)解 PBR 首先從為(wèi)何我們能(néng)看到色彩缤紛的世界開始,現(xiàn)實生(shēng)活中任何光都以電磁波形式在空間(jiān)傳播的一(yī)個(gè)或多個(gè)光子(zǐ)彙聚而成,光子(zǐ)打到物體(tǐ)上(shàng),進行反射、折射後擊中我們的視(shì)網膜上(shàng)的感光細胞後,經過一(yī)系列的物理(lǐ)化(huà)學變化(huà),轉換成神經沖動,由視(shì)神經傳入大腦層的視(shì)覺中樞,然後我們就(jiù)看見這(zhè)些(xiē)物體(tǐ)。成千上(shàng)萬的光子(zǐ)在運動過程中方向相似,但(dàn)單個(gè)光子(zǐ)又因擊中物體(tǐ)的角度不同而有差異,我們便能(néng)感受到這(zhè)個(gè)物體(tǐ)的質感。
之所以叫做基于物理(lǐ)的渲染而不是物理(lǐ)的渲染,是因為(wèi)渲染過程基于物理(lǐ)理(lǐ)論,盡管物理(lǐ)理(lǐ)論很接近現(xiàn)實,但(dàn)畢竟不是現(xiàn)實。PBR工作(zuò)原理(lǐ)基于以下(xià)理(lǐ)論:
– 微表面模型 –
所有的PBR技術都是基于微表面的。這(zhè)個(gè)理(lǐ)論是說(shuō)任何表面都可以用無數微小的鏡面來(lái)描述,表面的粗糙程度越高這(zhè)些(xiē)微小的鏡面的朝向區别越大。對于一(yī)個(gè)物體(tǐ)表面來(lái)說(shuō)更粗糙意味着微表面的朝向更無序,當我們討(tǎo)論光線的高光反射時(shí),這(zhè)些(xiē)鏡子(zǐ)一(yī)樣的微表面會将相同方向的入射光線朝着不同方向反射出去,形成一(yī)個(gè)更為(wèi)寬廣的鏡面反射區域。而對于光滑表面來(lái)說(shuō),入射光線基本沿着同一(yī)方向反射出去,形成更清晰的反射畫面。
從微觀角度來(lái)說(shuō),沒有任何表面是完全光滑的。我們這(zhè)裏使用粗糙度這(zhè)個(gè)統計近似數值,來(lái)衡量那些(xiē)比一(yī)個(gè)像素的覆蓋範圍還小的微表面的粗糙程度。我們根據表面的粗糙度,可以計算(suàn)得到單個(gè)微表面的半角向量(halfway vector)平行于平均半角向量的概率(半角向量是指位于入射光 l 與眼睛向量正中間(jiān)的單位向量),越多的微表面半角向量相互平行,高光反射則越清晰和強烈。我們使用統計近似把微表面的各種對齊情況統一(yī)到0到1之間(jiān),形成一(yī)個(gè)粗糙度參數。粗糙度越高的物體(tǐ)高光部分(fēn)就(jiù)越大越模糊,而光滑表面的高光小且亮。
– 能(néng)量守恒定律 –
微表面模型采用一(yī)種近似的能(néng)量守恒:反射出去的光的能(néng)量不應該超出入射光的總能(néng)量(發光體(tǐ)除外)。從上(shàng)圖中可以看出,随着粗糙度的增加高光範圍的逐漸增大,亮度是在逐漸降低(dī)的,假如(rú)無論高光的範圍多大亮度都一(yī)樣,那麽這(zhè)個(gè)粗糙表面發射的能(néng)量就(jiù)有些(xiē)太多了(le),違反了(le)能(néng)量守恒定律。這(zhè)就(jiù)是雨夜街道路(lù)面上(shàng)看到的燈光反射要比幹燥的路(lù)面上(shàng)範圍小且明亮的原因。
– 雙向散射分(fēn)布函數 –
我們為(wèi)了(le)讓計算(suàn)機模拟光從物體(tǐ)表面各個(gè)位置反射到我們眼中而産生(shēng)亮度變化(huà),構建了(le)一(yī)個(gè)光照模型——雙向散射分(fēn)布函數(Bidirectional scattering distribution function,BSDF),可以分(fēn)為(wèi)反射和透射分(fēn)量 – BRDF(雙向反射分(fēn)布函數)和BTDF(雙向透射分(fēn)布函數)。從本質上(shàng)講,它是一(yī)種數學函數,用于确定特定光線在給定角度下(xià)被反射(散射)的概率。每次光線反射時(shí),BSDF都會确定光線反射的方向。