這篇主要是我準備面試時候用來梳理的,時間倉促,可能有很多地方錯誤,希望能夠指出

參考了很多知乎大佬們的文章,這篇文章更像是歸納總結 ​

什麼時候才能學會PBR啊!!!!

前言:掌握PBR:

PBR是什麼,為什麼要使用PBR?

各個引數、公式的書寫,意義?DFG?金屬度, 粗糙度, 反射率-F0?

美術PBR的流程?一般有用什麼貼圖?

金屬、高光工作流的各個引數,還有兩者之間的區別?

微表面、能量守恆、基於物理的三個意義

IBL

輻射度量學名詞的意義?

BRDF的漫反射、高光反射

PBR - 基於物理的渲染(Physically based rendering)

13。PBR(金屬/非金屬應該用什麼引數怎麼做)

見15

14。金屬工作流與高光工作流的區別\優缺點

這個連結是講PBR材質貼圖的:

https://www。

bilibili。com/video/BV1M

54y1B7ie?from=search&seid=2754000269258789338

金屬/粗糙度工作流(Metal/Roughness)

basecolor

:RGB貼圖反照率顏色Albedo或F0,不含任何光照資訊。

metallic

:灰度貼圖遮罩,表示金屬成分的佔比,1表示純金屬。

roughness

:灰度貼圖,數值越大越粗糙。

鏡面反射/光澤度工作流(Specular/Glossiness)

diffuse

:Albedo RGB貼圖,如果是金屬diffuse貼圖給出的值是純黑(0)。

specular

:RGB貼圖定義金屬和非金屬的F0。

F0

:入射角為0度時的反射光線radiance佔入射光線radiance的比例。非金屬反射的光線比金屬少,F0更小,0。04。

glossiness

:灰度貼圖,數值越大越光滑,與M/R的roughness相反。

specular工作流的優點:

PBR、BRDF知識複習(學習)(二)

PBR、BRDF知識複習(學習)(二)

缺點:高光工作流程容易出錯 弄成不符合能量守恆的材質

PBR、BRDF知識複習(學習)(二)

Metallic由於使用了統一的非金屬F0值而減少了因非金屬F0值出錯的可能性而更易於創作,其佔用的貼圖記憶體也更少,是目前被採用最多的工作流程。但Metallic的缺點是無法控制非金屬的F0值(在有些工具中,例如UE4,可以透過Specular輸入來改變F0值),在低解析度貼圖中邊緣瑕疵問題會比較明顯。 ​

Specular工作流邊緣瑕疵是黑色的,相較於前者的邊緣瑕疵較為不明顯,可以在specular貼圖中控制非金屬的F0值。但是相對的,Specular能夠控制非金屬F0值,因而在使用中更有可能導致錯誤值,能量守恆法則有可能會被打破,也會佔用更多貼圖記憶體:2RGB+1灰度圖(鏡面反射圖是RGB貼圖),它使用了與傳統工作流程相同的術語,但卻需要不同的資料,容易令人困惑。

15。金屬和非金屬係數上的差別,具體是哪些係數,金屬在xx範圍內,非金屬在xx範圍內。

非金屬的F0一般為4%,而金屬的F0在70%-100%中,,反映在Metellic工作流中,就是Metallic值為1的部分,它所對應的base color,實際上就是metal reflectance,也就是金屬的鏡面反射值。

PBR、BRDF知識複習(學習)(二)

PBR、BRDF知識複習(學習)(二)

16。BRDF與蘭伯特模型的聯絡是什麼?BRDF漫反射公式?

PBR、BRDF知識複習(學習)(二)

運用能量守恆,進來多少irradiance,就會出去多少irradiance,radiance是uniform的 紅色的項是相等的,藍色的是常數項。

PBR、BRDF知識複習(學習)(二)

PBR、BRDF知識複習(學習)(二)

17。PBR光照模型,和傳統光照模型的區別(材質和環境解耦)

這點答的感覺不是很詳盡,有知道的大佬可以補充一下。。。

在漫反射模型裡,我們使用物體的albedo材質來表示物體的反射率,有RGB三個通道。但傳統模型裡,是用diffuce材質來表示顏色。這也是BRDF模型與傳統模型的區別

PBR考慮到了光照的能量守恆,且 基於給定粗糙值的表面(片元),對於光的反射計算更加的符合統計結果。

而pbr的最終形態是同時考慮來自環境光照貼圖(一個cubemap)的間接光照,被稱為IBL(image based lighting)

18。IBL定義,IBL基本原理,IBL對HDR的取樣演算法(虛幻、烘焙、光照探針)

https://

zhuanlan。zhihu。com/p/17

6474625

基於影象的照明(Image Based Lighting, IBL)

透過Environment Map生成漫反射Irradiance貼圖

透過Environment Map生成帶有粗糙度Roughness的鏡面Irradiance貼圖

取樣及積分(蒙特卡洛方法)

https://

blog。csdn。net/yunman201

2/article/details/94404062

還沒有完全理解,後續補

19。PBR渲染管線(BSDF, BTDF,GGX分佈函式)

https://www。

cnblogs。com/wbaoqing/p/

9810386。html

20。渲染方程型別

積分的意義在於計算這個角度上, 微面元受到各種irradiance的總和,然後結果是反射到給定方向的Radiance, 畢竟還有環境光, 多光源

PBR、BRDF知識複習(學習)(二)

PBR、BRDF知識複習(學習)(二)

PBR、BRDF知識複習(學習)(二)

21。輻射度量學

Games101推導:

https://www。

yuque。com/qingyan-bng85

/zagg8x/mvurlx

radiance:輻射度

irradiance:輻照度

intensity:輻射強度

power(radiant flux):輻射通量or功率,是單位時間內釋放、反射、投射或吸收的能量,簡單理解可認為該值說明一個光源有多亮

PBR、BRDF知識複習(學習)(二)

intensity

輻射強度(Radiant Intensity)表示的是在單位球面上,一個光源向每單位立體角所投送的輻射通量。

power per unit solid angle 單位立體角的能量

光源對任意一個單位立體角的輻射 我們成為 Radiant intensity, 單位就是W/sr,sr就是立體角 ​

立體角

:立體角用ωω表示,它可以為我們描述投射到單位球體上的一個截面的大小或者面積。投射到這個單位球體上的截面的面積就被稱為立體角(Solid Angle),你可以把立體角想象成為一個帶有體積的方向:

PBR、BRDF知識複習(學習)(二)

PBR、BRDF知識複習(學習)(二)

PBR、BRDF知識複習(學習)(二)

Radiant flux

:一個點光源對四面八方的輻射, 我們稱為, 單位是: W

輻射通量Φ表示的是一個光源所輸出的能量,以瓦特為單位。光是由多種不同波長的能量所集合而成的,而每種波長則與一種特定的(可見的)顏色相關。因此一個光源所放射出來的能量可以被視作這個光源包含的所有各種波長的一個函式。波長介於390nm到700nm(奈米)的光被認為是處於可見光光譜中,也就是說它們是人眼可見的波長。在下面你可以看到一幅圖片,裡面展示了日光中不同波長的光所具有的能量: ​

PBR、BRDF知識複習(學習)(二)

PBR、BRDF知識複習(學習)(二)

irradiance:輻照度,單位面積

收到的flux的總和單位是:

PBR、BRDF知識複習(學習)(二)

the power per unit area

也可以認為是單位面積收到的Radiance的總和

PBR、BRDF知識複習(學習)(二)

radiance

radiace是從“特定方向”dw,所以是Irradiance per solid angle

PBR、BRDF知識複習(學習)(二)

PBR、BRDF知識複習(學習)(二)

22。⭐PBR美術流程

PBR:基於物理的渲染過程是一種著色和渲染技術,嘗試基於真實世界光照物理模型,用於更精確的描述光如何與物體表面互動。可以透過直接的物理引數來直觀地達到想要的結果,不用透過拙劣的各種引數來調整,物理引數一般直接透過貼圖來傳遞給Shader。 優勢:方法論和演算法基於精確的計算公式免除創作表面的猜想過程。在任何光照環境都能表現出正確的結果。為不同的藝術家,提供統一的工作流程。

23。PBR材質如何理解(PBR渲染管線)

PBR渲染管線所需要的每一個表面引數都可以用紋理來定義或者建模。使用紋理可以讓我們逐個片段的來控制每個表面上特定的點對於光線是如何響應的:不論那個點是金屬的,粗糙或者平滑,也不論表面對於不同波長的光會有如何的反應。

PBR、BRDF知識複習(學習)(二)

反照率(albedo)

反照率(Albedo)紋理為每一個金屬的紋素(Texel)(紋理畫素)指定表面顏色或者基礎反射率。這和我們之前使用過的漫反射紋理相當類似,不同的是所有光照資訊都是由一個紋理中提取的。漫反射紋理的影象當中常常包含一些細小的陰影或者深色的裂紋,而反照率紋理中是不會有這些東西的。它應該只包含表面的顏色(或者折射吸收係數)。

法線

法線貼圖使我們可以逐片段的指定獨特的法線,來為表面製造出起伏不平的假象。

金屬度

金屬(Metallic)貼圖逐個紋素的指定該紋素是不是金屬質地的。根據PBR引擎設定的不同,美術師們既可以將金屬度編寫為灰度值又可以編寫為1或0這樣的二元值。

粗糙度

粗糙度(Roughness)貼圖可以以紋素為單位指定某個表面有多粗糙。取樣得來的粗糙度數值會影響一個表面的微平面統計學上的

取向度

。也就是影響

法線分佈函式

,一個比較粗糙的表面會得到更寬闊更模糊的鏡面反射(高光),而一個比較光滑的表面則會得到集中而清晰的鏡面反射。某些PBR引擎預設採用的是對某些美術師來說更加直觀的光滑度(Smoothness)貼圖而非粗糙度貼圖,不過這些數值在取樣之時就馬上用(1。0 – 光滑度)轉換成了粗糙度。

環境光遮蔽(AO)

環境光遮蔽(Ambient Occlusion)貼圖或者說AO貼圖為表面和周圍潛在的幾何圖形指定了一個額外的陰影因子。比如如果我們有一個磚塊表面,反照率紋理上的磚塊裂縫部分應該沒有任何陰影資訊。然而AO貼圖則會把那些光線較難逃逸出來的暗色邊緣指定出來。在光照的結尾階段引入環境遮蔽可以明顯的提升你場景的視覺效果。

PBR材質貼圖

Diffuse:物體本身的固有色

PBR、BRDF知識複習(學習)(二)

PBR、BRDF知識複習(學習)(二)

Reflection反射:

PBR、BRDF知識複習(學習)(二)

光澤度:材質的粗糙程度

PBR、BRDF知識複習(學習)(二)

金屬度:描述金屬是非金屬還是電解質,1(白色)表示為金屬,0(黑色)表示為電解質,金屬真正控制的是F0,即菲涅爾反射中與相機射線垂直的面的反射率

PBR、BRDF知識複習(學習)(二)

粗糙度:與光澤度相反,配合金屬度貼圖

法線:

PBR、BRDF知識複習(學習)(二)

置換

PBR、BRDF知識複習(學習)(二)

環境遮蔽

描繪物體和物體相交或靠近的時候遮擋周圍漫反射光線的效果,即材質內部陰影和深度關係。

PBR、BRDF知識複習(學習)(二)

PBR、BRDF知識複習(學習)(二)

Bump沒有法線效果好,法線有xyz方向,Bump只有上下

PBR、BRDF知識複習(學習)(二)

PBR、BRDF知識複習(學習)(二)

PBR、BRDF知識複習(學習)(二)

參考:

[1]10分鐘瞭解PBR流程-PBR基本原理和概念:

https://

zhuanlan。zhihu。com/p/16

1950497

https://www。

jianshu。com/p/9f47d5334

fd3

[2]

https://

github。com/QianMo/PBR-W

hite-Paper

[3]

https://www。

jordanstevenstechart。com

/physically-based-rendering

[4]

https://

zhuanlan。zhihu。com/p/30

4191958

[5]

https://

zhuanlan。zhihu。com/p/34

8451044

[6] unity_shaders_book_chapter_18。pdf [7]

https://

blog。csdn。net/weixin_33

884611/article/details/85715277

[8]

https://

zhuanlan。zhihu。com/p/15

8025828