本人也是剛開始接觸這方面的知識,在具體專案的工作中,越發的感受到基礎理論知識對具體工作的重要性,所以最近重新整理了下前些日子學習PBR時的思路,現在將自己的思路分享出來,一是幫助同樣剛接觸PBR的學習者,二來也希望自己錯誤的思路得到更正。限於本人自學水平,這篇文章的內容中,有不少內容是我的推論,並沒有找到實際的依據,如果哪位大神看到了錯誤,還請大神直接指明,以免這篇文章誤導了其他學習的朋友。

PBR

全稱為

Physically-Based Rendering

,即基於物理的渲染。本質上就是研究表現基於物理的真實的光線運動規律,其工作理論來源於現實的物理研究成果,但其在表現空間上保留了足夠的藝術性,所以PBR是一套兼具科學性與藝術性的渲染方法。

光的表現是PBR核心內容,研究光線的運動規律對學習PBR流程至關重要。

光的運動規律

在物理上,光並不能夠獨立存在,光的運動和表現依託於光源和介質兩個方面,換言之,這也是影響光運動的兩個重要因素。掌握了這兩個因素對光的影響,也就掌握了光的運動規律。

在這裡,我們只討論介質對光的運動的影響。

介質

光線的運動路徑並不是虛無的,它是實實在在存在的,像輪胎的運動路徑以路面為載體一樣,光線的運動路徑也有載體。這個載體我們可以稱之為介質。光的路徑載體——介質,可以是氣體狀態,液體狀態,也可以是固體狀態,基於不同介質的不同物理特性,光線運動受不同介質的影響也是不同的。

以介質對光線運動的作用作為線索來思考,光線在介質中的運動可分為光線在同一介質中的運動和光線在兩種介質間的運動(我們認為光在同一時間不能夠同時接觸多於兩種的介質)。

在同一均勻介質中,光線的運動路徑是直線;在同一不均勻介質中,光線的運動路徑是曲線。對於現實工作來說,這種情況的案例基本不會出現,所以我們重點討論第二種情況。

在兩種介質間,受不同的物理特性影響,光線的運動可分為兩大類——Reflection和Refraction。這裡所提到的物理特性,其具體知識理論性太強,對我們的實際工作並沒有太大幫助,解釋和理解起來十分麻煩,這裡也不再討論,我們只需要根據現象(Reflection還是Refraction)來進行工作就可以了。

Reflection

光線從介質1接觸介質2後,再次進入介質1繼續運動,其運動遵循

反射定律

Microsurface Theory

在現實中,沒有絕對光滑的介質表面,即在微觀層面上所有的物體表面都是由很小的且具有各自獨立方向的微小表面組成的,這就是Microsurface Theory。受Microsurface作用影響,現實中的Reflection可以分為Specular Reflection和Diffuse Reflection。

Specular

Reflection

當介質表面足夠光滑時,平行入射光線在接觸介質表面後仍然被平行的反射出去,這就是Specular Reflection。需要提及的是,由於Microsurface的存在,現實中並不存在絕對精確的Specular Reflection,但一般我們還是認為存在近似的Specular Reflection,如鏡面反射,水面反射等。

Diffuse

Reflection

當介質表面不夠光滑時,平行入射光線在接觸介質表面後被以分散的方向反射出去,這就是Diffuse Reflection。

在同一環境條件下,Specular Reflection的高光小而亮,Diffuse Reflection的高光大而暗,但兩種Reflection的光總量相等。

Refraction

光線從介質1接觸介質2後,進入介質2繼續運動,光線的運動速度和方向發生改變(垂直射入除外,只速度發生改變,方向不變)。

受介質內部物理性質影響(可理解為介質內雜質的量),不同介質的IOR(Index Of Refraction)值各異,這導致Refraction又分為Scattering和Transmission兩種情況。

Scattering

光線進入介質2後,運動方向發生改變,在介質2內被吸收一部分,剩下的光線以不同於介質2內主要光線路徑的方向分散射出介質2,這就是Scattering。

Transmission

光線進入介質2後,運動方向發生改變,在介質2內被吸收一部分,剩下的光線以相同於介質2內主要光線路徑的方向集中射出介質2,這就是Transmission。

在光線路徑的集散程度上,Specular/Transmission和Diffuse/Scattering這兩組情況分別具有一定相似性,我們可以聯絡理解。

Energy Conservation

Energy conservation的含義是,能量並不能夠被創造和消滅,它只能被分散或集中到不同的介質中,但能量總量保持不變。光以波和粒子的形式存在,光本身就是一種能量,所以光線的運動也一定遵循Energy Conservation。這一理論的結果是,同一穩定光源發射出的光,在運動過程中,接觸和經過不同的介質時,其光能不斷被介質吸收,最終完全被分散於各介質中。在視覺上表現為,光線在接觸介質後重新射出的光,永遠不會比接觸這一介質前的光線更亮。在PBR工作流程中,我們不必考慮處理Energy Conservation所帶來的光線衰減,這將由PBR中的Shader自動處理。

以上部分我們從光線運動本身的視角進行了光線運動規律的討論,接下來我們繼續從光線運動的觀察角度進行探索。

Color

顏色是生物視覺所識別到的光波資訊,也就是說,顏色是光波的表現形式,它由光而來,由光而變,假如沒有光也就沒有顏色。

光具有波的特性,可分為不同波長的光波,不同波長的光波在生物視覺系統中會被識別為不同的色彩資訊。光線由光源射出後,接觸到不同的介質,不同的介質會吸收不同波長的光波,剩下沒有被吸收的光波被重新射出,這就形成了我們所觀察到的光的色彩資訊。

BRDF

Bidirectional Reflectance Distribution Function即為雙向反射分佈函式,它可用來描述入射光線在接觸介質後在各個方向上的出射分佈。BRDF是一種數學計算模型,它的資料來源有三個——介質表面材質(包括介質物理特性和微面資訊)、入射光線的波長、觀測者與被觀測物體間的位置關係。透過向BRDF輸入這三項資訊,可以計算出光線的各向分佈資訊,由此模擬出虛擬光線運動。目前存在多種BRDF數學模型,但不是所有的BRDF都與真實的物理情況相符合。PBR採用基於Diseny的原則和GGX微面分布的BRDF模型,這種模型在高光反射處理方面具有較真實的表現效果。

Fresnel Effect

Fresnel Effect表示從介質表面反射的光量取決於觀察的角度,當視線垂直於被觀測點表面時,反射率最低;當視線不垂直於被觀測點表面時,視線與被觀測點表面夾角越小,反射率越高。

Fresnel Effect作為一種固定的數學關係,以Energy Conservation為基礎,可由IOR算出,並作為BRDF的係數,成為建立虛擬光線運動模型基礎的一部分。

F0

F0稱為菲涅爾零點,其含義為當視線垂直於觀測點表面時,觀測點的反射率。

F0作為BRDF中的關鍵係數,對PBR的虛擬光線運動模型的建立具有重要涵義。以F0在Metal介質與Non-Metal介質中的不同表現為依據,PBR由此產生兩種常見的工作指導原則——Metal原則和Non-Metal原則。這也是我們在PBR工作中應該首要考慮的因素。

Metal

Metal介質在接收入射光線後,會將大部分入射光線重新反射出去,另外一部分折射光線將會被完全吸收。所以Metal介質的反射率值較高,其F0值通常在70%-100%之間。

Non-Metal

Non-Metal介質在接收入射光線後,一部分光線在折射後會被散射和吸收,另一部分則會被重新反射出去,但這一部分反射光線要比相同環境下Metal反射的少,所以Non-Metal的F0值比Metal的更低。Non-Metal的F0值通常在2%-5%之間,除寶石等特例外,大部分Non-Metal的F0值不會高於4%。

在現實世界中,存在既不屬於Metal,也不屬於Non-Metal的介質,這樣的介質稱為Metalloid。這種介質是金屬與非金屬的混合物,它可能既具有Metal的特性,又具有Non-Metal的特性,在製作這種介質的材質時,需要我們實事求是的從真實的視覺方面對介質進行觀察,併發揮PBR流程的藝術創造性,由此創造優秀的作品。

這篇文章基本上是從純理論的角度對PBR常用基礎知識進行的討論,希望對剛接觸此領域的朋友有所幫助。