精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
PBR材質系統原理簡介

一、自然界材質

要學會使用PBR首先需要了解什么是PBR,需要從真實世界的這些PBR材質特有的屬性拆分開來去了解他們,這樣我們就需要了解光,物體表面材質以及光是如何與材質交互的。光包括了顏色,亮度,衰減,強度,形狀等主要屬性,真實的世界中永遠是多光源并存的。那么自然界中的材質是如何跟光交互的呢?燈光照射到物體表面后兩種情況,反射或繼續前行折射。折射后的光線被吸收(一般轉化為熱),或離散。光線被吸收的行為不是發生在表面,而是次表面,或者內部反射不會帶出任何顏色。
吸收會使光線強度降低,吸收某一光譜的光線,余下的光線顏色變化,但方向不變,離散后方向改變,強度不變。這里對于絕緣體和導體,兩者與光的交互是完全不同的絕緣體,即非金屬的反射率普遍很低,一般在2%-8%左右,大部分光線進行折射,折射后的光線或者被吸收,或者重新離散出來。這部分折射的光線吸收率和材質的明度關,暗的吸收多,亮的吸收少;離散后光線的顏色也取決于物體表面顏色;
對于導體,即金屬,反射率普遍很高,達到70%-100%,所以大部分光線會以鏡面反射的形式反彈回來。小部分光線折射后完全被吸收(光是一種粒子,被導體吸收)。

1、擴散Diffusion與反射Reflection

擴散與反射,也即是漫反射diffuse與鏡面反射specular,是描述光與物質的相互作用經常用到的兩個詞。大多數人應該能基本了解他們的含義,但不一定能知道他們兩個在物理上的區別。
當光線照射到物體表面上時,光線會以和入射角度相同的反射角度從物體表面反彈出去(入射角度與反射角度都是光照方向與光照表面發現方向所成的夾角)。這和你朝墻上扔小球非常相似,你把一個球扔在地上或者墻壁上,小球會以相同的角度但是相反的方向彈開。如果一個表面足夠光滑,那么它將表現的像個鏡子一樣。“鏡面反射”這個詞便用來描述這個現象。
當然了,并不是所有的光都被表面反射出來了。通常情況下會有一部分光線進入到受照射物體的內部。在受照射物體內,這部分光線會被物體本身吸收(通常會轉化為熱)或者在物體內進行散射,部分散射的光有可能會通過內部的傳播最終又反射回表面,再次成為可以觀察到的光線。這個現象有很多叫法,Diffuse Light(漫反射光),Diffusion(擴散光),Subsurface Scattering(子面散射、次表面散射),都說的是一個東西。
散射(Scattering)的光和被吸收(Absorption)的光的波長往往是不一樣的。當受照射物體吸收了大部分的光,但是反射了藍色的光,那么這個物體看上去就是藍色的。散射往往是一致無序的,可以說它從各個方向上來看都是一樣的,這和鏡子完全不同。所以當使用PBR的材質球需要描述物體的擴散與反射屬性時,只需要輸入“固有色albedo”就好了,即用反射貼圖來描述從物體表面散射出的各種顏色。Diffuse color有時也被用作它的同義詞。

2、半透明與透明

在某些情況下擴散現象(Diffusion)會更加復雜,比如皮膚和蠟燭這些有著更廣泛的擴散距離的材料。這時僅僅一張固有色貼圖Albedo是不夠的,整個著色系統必須考慮到被照射物體的形狀與厚度。如果被照射物體足夠的薄,那么往往能夠從物體背面看到散射出來的光,并被稱為半透明。如果被照射物體內的擴散程度很低(比如玻璃),那么光的散射幾乎是不可見的,你可以從物體的這一面看到另一面的整個畫面。這一現象和典型的“接近物體受照射表面”的擴散現象有非常大的區別,這時候就需要去專門的調整并去模擬這種物理屬性。

3、能量守恒

講到這里我們足以得出一個重要的結論,那就是擴散與反射是完全獨立的。這是因為光在擴散之前必須先進入物體內部(也就是沒有被物體表面反射)。這在光的投射現象里被稱為“能量守恒”,這也就意味著離開表面的光的亮度是不可能高于最初所照射光線的亮度的。

4、金屬

基于以下幾個原因,導體,特別是金屬,具有很特殊的材質效果。
首先,導體相對于絕緣體具有更強的反射。導體的反射率在60%~90%之間,而絕緣體則低得多,只有0%~20%。這些金屬的高反射率意味著大多數的照射光線都不能進入物體內部進行散射,這就意味著金屬看上去非常的閃。
其次,導體的反射光在可見光譜上會發生變化,也就是說反射光被上色了。這種反射的顏色雖然就算在導體中也算很罕見,但這種材料在日常生活中也是能看到(比如黃金,紅銅和黃銅)。一般來說,絕緣體并不會出現這種現象,他們的反射是沒有色彩影響的。
最后,導體通常是吸收光,而不是讓光散射。這意味著理論上來講,導體不會表現出任何散射現象。然而在現實中,金屬表面上的氧化物和殘留物會顯現一些少量的散射光。
正是因為金屬與其他物質的二元性,使得一些渲染系統采用直接輸入“金屬度metalness”的方法來控制一個材料是否是金屬。而不是僅僅去分別指定固有色albedo和反射率reflectivity。有時在創建材質,這會是首選的簡單方法,但PBR并不是都要這么做。

5、菲涅爾

在計算機繪圖中,菲涅爾指的是在不同入射角度時所出現的不同的反射率。具體的說,光的入射角度越大,反射率越高(如果水質夠清晰,當你垂直的看水面時,是看不到自己的臉的,只能看到水底。而當你的目光和水面接近水平時,就看不到水底,反而可以看到湖面對岸上的樹之類的倒影)。這意味著開了菲涅爾的物體,渲染出來的物體的邊緣會有明亮的反射。大多數人都應該很熟悉這個概念,它在計算機繪圖中不是個新詞。但是PBR在菲涅爾方程上做了一些很重要的修正。
首先,對所有的材質來說,當以接近水平的角度來觀察光滑物體的邊緣時,會出現近乎完美的鏡面。是的,真的,任何物體都可以作為鏡子,只要它是光滑的,并且以正確的角度觀察。直覺上會覺得這不科學,但是這很科學。
第二點,對于不同材質來說,入射角度對應的曲率或者是梯度并沒有明顯的區別。金屬是最特別的,但也沒特別到哪里去。(說實話這段翻譯我沒太明白,看下面的圖可以發現不同材質在0°入射角時的反射率差別最大,而在90°時都無限接近了100%,所以差別還是蠻大的。不過反射率在靠近0°時爬升的很慢,這時確實是沒什么太大變化。

6、微表面

上面所說的反射與擴散都是由表面的方向所決定的。在較大的尺度下(可以理解為宏觀條件下),這是由被渲染表面的形狀決定,當然也可以使用normal map來描述一些小細節。只要有了這些信息,任何渲染系統都能將擴散和反射表現的相當不錯。
然而我們仍然忽略了一個地方。現實當中大多數物體的表面都會有非常微小的缺陷:微小的凹槽,裂縫,幾乎肉眼不可見的凸起,以及在正常情況下過于細小以至于難以使用normal map去表現的細節。盡管這些微觀的細節幾乎是肉眼觀察不到的,但是他們仍然影響著光的擴散和反射。
微表處的細節對反射的影響最容易被觀察到(次表面的散射不太會被影響到,所以這里就不說了)。在上圖中,當平行光照射到粗糙表面時會分散開來,也即是每條光線都照射到了物體表面上朝向不同的部分。用小球和墻壁來說:球仍然會反彈但反彈的角度變得不可預知。總之,物體表面越粗糙,反射光看上去越“模糊”。
不幸的是,分別去計算每一個微小表面所對應的光照情況是不可能的。那怎么辦?如果我們放棄去直接計算每個微表面的光照和反射情況,而是直接給出一個粗糙度的數值,那我們可以寫出一個相當準確的shader并得到非常相似的最終效果。這個數值通常被稱為“光澤度”,“平滑度”,或“粗糙度”。它可以被特定的制作為一張貼圖并賦予給材質。
微表面的細節對于任何材質都是個非常重要的特質,就像真實世界中就有著各種各樣的微表面。光澤度貼圖并不是一個新概念,但因為微表面的細節對光照的反射具有如此重要的影響,所以它在PBR中占據了一個關鍵位置。很快我們就將看到PBR著色系統在微表面方面的改進。

二、PBR材質系統

UE4的PBR材質系統中引入了各種BRDF理論模型。BRDF 雙向反射分布函數(Bidirectional Reflectance Distribution Function)是建立在光學物理與計算機圖形學的基礎上的用于描述光反射現象的數學模型。BRDF描述了入射光線經過某個表面反射后在各個出射方向上的分布,即場景中的光照射到材質表面反射到視點的反射特征。在光學物理中,BRDF模型通過積分的形式來描述物體上一無窮小點對入射光線的吸收和反射情況,等于反射方向的光亮度和沿入射方向的入射光輝度之比,在理論上可以描述現實中絕大多數的光學現象,其模型如下:
                 
BRDF模型還需遵循能量守恒定律,即入射光的能量等于出射光的總能量:
                      
BRDF中的渲染方程計算了環境光照明下的反射光的光亮度,它可以寫成不同角度下的入射光光亮度乘以BRDF的積分:
                      
為了便于使用,BRDF模型被組織成了多種參數化的指數模型,可以分為三類:經驗模型、基于物理的模型、數據模型等,下面介紹幾種常用的BRDF模型:

1、Lambertain漫反射模型

Lambertain漫反射模型是計算機圖形學中最基本的反射模型,它模擬了入射光線被均勻地反射到各個方向(各向同性)的情況,也就是說沿不同方向的BRDF是一個常數,那么就有:
                 
反射率 等于反射光輝度與入射光輝度之比,即
        
Lambertain模型能夠很好地表示包含純粹漫反射現象的物體材質(例如:紙張),但不能表示鏡面反射效果,而鏡面反射效果對于金屬材質的表現十分重要。

2、Phong光照模型

Phong光照模型在Lambertain漫反射模型的基礎上添加了鏡面反射項,來表達鏡面反射效果:
    

Phong模型不滿足可逆性。
盡管Pong模型缺乏物理解釋,但由于簡潔和高效的特性而被廣泛應用于計算機圖形學的反射模型中。

3、Fresnel模型

Fresnel模型是建立在光學物理的基礎上的數學模型,其建立在表面由眾多微表面組成的細節幾何結構上。從微觀角度來說,微觀尺度的表面幾何是通過一組微平面集合來組成的。在真實的物理環境下,我們發現光的單向反射性會在擦地角處附近增大,(例如:在以垂直角度向下看水面幾乎不存在反射,而以平行角度看水面時則存在明顯的反射現象)。在此基礎上,我們從麥克斯韋電磁波方程組中得到菲涅爾公式,從而計算出入射光的反射量:
   
                              
其中,F表示菲涅爾反射率。

4、Cook-Torrance模型

Cook-Torrance模型是計算機圖形學中應用最早的BRDF物理模型,是應用物理學家Torrance-Sparrow模型的一個應用版本。Cook-Torrance模型中把物體看成無數個微平面,并假定微平面是由V型凹槽組成的,凹槽中滿足鏡面反射。該模型結合了Lambertain模型的漫反射項與微平面反射的鏡面反射項,公式為:
                       
其中,D表示微平面法向分布函數,G表示幾何衰減因子,s和d表示鏡面反射和漫反射系數。

5、Ward模型

Ward模型介紹了一種更一般的表面法向表達方式,即通過橢圓體這種潤徐各向異性反射的形式來表達。該模型將菲涅爾因子和幾何衰減因子替換成了一個用于保證分布在整個半球內積分的簡單歸一化項,由于沒有考慮菲涅爾因子與幾何衰減因子,使得該模型更像是一種經驗模型。

6、波動光學模型

波動光學模型以波動光學為基礎,假設物體表面的微平面大小與光的波長相當。雖然波動光學模型有很強的描述能力,能夠很好地表示真實感物體材質,但由于該模型本身過于復雜而限制了它的應用。

7、數據驅動模型

數據驅動模型是將一個大的材質集合的BRDF記錄為高維向量,并通過降維的方法從這些數據中計算出一個低維模型。數據驅動模型對材質屬性沒有假設限定,使用起來更靈活,但由于數據量大,還需要通過數據降維的方法來壓縮數據。

三、UE4中的PBR材質

UE4引擎的PBR材質系統中引入了各種BRDF函數理論模型,來盡量逼近模擬自然界的物理現象,PBR材質的編輯指的是用戶通過修改現有的BRDF模型從而得到新的BRDF模型。如果是解析形式的BRDF模型,那么通過修改其參數,就能實現BRDF的編輯。也可以在shader里選擇默認模型,最終需要效率和效果的一個最佳結合點。
在UE4材質里面,每一個input都有著各自的特性,他們的組合成為了一個個不同屬性的物理材質。可以實現鋼,塑料,鐵,玻璃,油漆等材質類型,打磨過的,拋光,磨砂等材質表面處理,生銹的,刮擦的,磕碰的,臟的,油膩的,油漆剝落的,積灰的,嶄新的等材質表現細節。
  PBR其實并不是一個邏輯復雜的過程,它更像一杯由各種數學公式組成的雞尾酒。比如說要描繪正確的高光過程,一個實用的PBR實例就是將施利克的菲涅耳系數與基于施利克-史密斯的視覺函數來進行組合。通過將復數的描述物理過程和結果的算法進行組合,PBR最終能夠具備賦予像素正確顏色的能力。
  其實在漫長的圖形技術進化過程中,PBR所做的工作一直在被程序員們進行著,從光錐陰影到softshadow,再到最近日趨火熱的AO過程,這些技術進步其實都是對算法模型的改進。但相對而言,傳統的做法往往集中在某個特定的有針對性的領域,比如說陰影當中,或者往往只考慮了像素的處理,所以并不能解決所有問題。PBR除了為整個渲染過程搭建了一個能夠整合的框架,令更多像素細節能夠有機會在改進算法和物理模型的作用下呈現更正確的顏色之外,最重要的改進還在于建立了更加完備的、分辨率更高同時能夠與經過PBR修飾的光影效果更正確互動的材質庫。

以上!

文章摘自網絡!
本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
PBR 綜合指南-Vol1
Vray2.0材質手冊(譯)
Vray常用材質參數
數字人C4D材質燈光渲染課堂之十二:SSS材質簡單介紹
提高電影和游戲的真實感,就靠雙向反射分布函數BRDF?
【PBR】基于物理渲染的基礎理論1.0版
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 广东省| 灵石县| 和静县| 尼勒克县| 大同县| 马尔康县| 南华县| 马鞍山市| 新和县| 新丰县| 莫力| 舟山市| 巴里| 庄浪县| 蓬安县| 克东县| 武隆县| 湟源县| 固镇县| 大洼县| 许昌县| 巧家县| 五家渠市| 博白县| 宁南县| 图木舒克市| 昆明市| 吐鲁番市| 大厂| 温泉县| 棋牌| 丰镇市| 淮安市| 高唐县| 来凤县| 泸溪县| 江安县| 仁寿县| 德安县| 丰城市| 韶关市|