【Unity Shader入門精要學習】基于物理的渲染(一)

基于物理的渲染一(PBS)

光線和某一介質(zhì)接觸之后一般會發(fā)生兩種情況签舞,一個是反射,而另一個就是折射咙咽。光線到底被反射多少是由菲涅耳等式( Fresnel equations)決定巩螃。

image.png

而我們可以認為現(xiàn)實世界中,光滑的平面并不是真的光學平滑嚷炉,而是有很多的細小微平面組成,微平面越凹凸不平則物體表面就越粗糙陈莽,否則表面就越光滑渤昌。因為越光滑法線變化越小虽抄,反射的光越集中,高光現(xiàn)象就越明顯独柑,反之法線變化越大迈窟,反射的光就越發(fā)散,高光現(xiàn)象就越不明顯忌栅,高光就越模糊车酣。


微平面

一、表面反射

表面反射就是指光線經(jīng)過介質(zhì)的折射一部分會進入介質(zhì)內(nèi)部索绪,一部分會反射介質(zhì)外部湖员,被反射出來的就是表面反射,而具體反射多少瑞驱,是由菲涅爾等式來描述娘摔。在渲染中,表面反射對應的就是高光反射唤反。

反射

二凳寺、次表面散射

一些光被折射進介質(zhì)內(nèi)部后,又會被散射出來彤侍,而被散射出去的光就是次表面散射光肠缨。金屬材質(zhì)具有很高的吸收系數(shù),因此盏阶,所有被折射的光往往會被立刻吸收晒奕,被金屬內(nèi)部的自由電子轉換為其他能量。而非金屬材質(zhì)往往具有吸收和散射兩種現(xiàn)象名斟。也就是次表面散射光脑慧。

散射

但是散射出去的光的位置有多種情況,既可能離射入點很近砰盐,也有可能很遠漾橙。所以數(shù)學建模的時候會有兩種情況。如果離得近并小于一個像素的大小楞卡,那么渲染就可以在局部進行,如果離得遠則需要使用次表面散射渲染技術脾歇。
這篇內(nèi)容建立在忽略次表面散射距離的基礎上蒋腮,只是用局部渲染。
次表面散射距離

三藕各、渲染方程

而如何使用數(shù)學模型來描述上面所提到的光照模型池摧,也就是對光這個抽象概念進行量化,可以使用輻射率來量化光激况。輻射率是指單位面積作彤,單位方向上光源的輻射通量膘魄。通常使用L表示。而在渲染中竭讳,通常會使用入射光線輻射率Li來計算出射光線的輻射率Lo创葡,這個過程往往也被成為著色。也就是有了渲染方程

渲染方程

其中Le(v)是自發(fā)光的輻射率绢慢,dw可以被認為是某條光線灿渴,f(w,v)就是某條光線在觀察方向上射出的百分比,也就是權重胰舆,Li(w)是有效入射光線的輻射率骚露,(n·w)就是光線在法線上的投影。
渲染方程的解釋

這個方程可以從右向左來解釋:
某一光線×它在某個方向上的投影(也就是衰減)
×對應的入射光輻射度×在觀察方向上射出的權重缚窿。它們在180度方向上的積分(求和)+自發(fā)光輻射率棘幸。
而去掉渲染方程中的自發(fā)光項,就會變成反射等式( Reflectance Equation)倦零。而在實時渲染中误续,自發(fā)光往往都是直接加上對應的光源即可。

四光绕、精確光源

在實時渲染中女嘲,累加部分,也就是積分诞帐,基本無法實現(xiàn)欣尼,所以往往會使用若干精確光源疊加的方式來代替,而不是計算入射光線整個半球上的積分停蕉。
所以使用精確光源來近似模擬這些光源愕鼓。也就是經(jīng)常使用的平行光,點光源慧起,聚光燈菇晃。這些光源被認定為大小無限小且方向確定。公式:

近似公式

其中l為光的方向蚓挤,c為光的顏色磺送,v是觀察方向。相比積分操作灿意,這里使用一個特定方向的f(l,v)值來代替積分估灿,這樣簡化了操作。如果是多個光源缤剧,就把對應的光源疊加求和即可:
多個光源疊加

五馅袁、BRDF(Bidirectional Reflectance Distribution Function)雙向反射分布函數(shù)

在近似光源的公式中,只剩下f(l,v)未知荒辕,它代表在給定入射光的方向的情況下汗销,有多少百分比的光會被反射到觀察方向犹褒,它有個專門的名字:雙向反射分布函數(shù)(BRDF)
顧名思義弛针,雙向就意味著有兩個方向:f(I,V)叠骑,其中I是入射方向,V是觀察方向钦奋。如果沿著法線旋轉不影響B(tài)RDF的結果座云,那么這種BRDF被稱為各向同性的BRDF,如果結果不一樣就是各向異性的BRDF付材。
BRDF的理解就是當一束光沿著入射方向I到表面某個點時朦拖,f(I,V) 表示了有多少部分的能量反射到了觀察方向V上。
BRDF決定了整個著色過程是不是基于物理的厌衔,這可以用BRDF是否滿足兩個特性來判斷:
是否滿足交換律能量守恒璧帝。
交換律要求當交換lv之后,BRDF的值不變富寿,即:f(l,v)=f(v,l)睬隶。
能量守恒則要求表面反射的能量不能超過入射的光能,即:

能量守恒

BRDF可以描述兩種不同的物理現(xiàn)象:表面反射页徐,次表面散射苏潜。
用于描述表面反射的部分叫做高光反射項,用于描述次表面散射的部分叫做漫反射項变勇。
image.png

如何得到BRDF呢恤左?一種情況是使用精確的光學儀器在真實的物理世界測量,根據(jù)所得到的數(shù)據(jù)進行數(shù)學建模搀绣。但真實世界的光照非常復雜飞袋,很難有一個BRDF可以滿足所有材質(zhì)。下面給出常見的BRDF的高光反射項链患,漫反射射項
Disney BRDF巧鸭。

六、漫反射項

經(jīng)常使用的是Lambert模型麻捻,就是最簡單也是最廣泛的BRDF:

Lambertian BRDF

其中cdiff表示漫反射光線所占的比例纲仍,通常也被稱為漫反射顏色(diffuse color)。 與我們使用Lambert光照模型的不同的是這里的f(l,v)是一個定值贸毕,還缺少一個余弦因子(n· l)巷折,但實際(n· l)是反射公式的一部分,而不屬于BRDF崖咨。之所以要除以π是因為假設漫反射在各個方向上的強度都是一樣的。同時BRDF要求在半球內(nèi)的積分值是1油吭,所以在給定入射方向l的光源在某表面的出射漫反射輻射率為:
漫反射輻射率

這樣看右側的公式就和我們經(jīng)常使用的Lambert光照模型差不多了击蹲。
但實際的世界中很難有這種完美均勻的散射署拟,根據(jù)真實的BRDF分析發(fā)現(xiàn),很多材質(zhì)在掠射角表現(xiàn)出了的明顯的高光反射歌豺,而且還與表面的粗糙程度有著很大關系推穷。粗糙表面在掠射角容易出現(xiàn)亮邊,光滑的表面在掠射角會形成一條陰影类咧。而這些實際情況是無法使用現(xiàn)有的Lambert光照模型體現(xiàn)出來的馒铃。
菲涅爾

http://filmicworlds.com/blog/everything-has-fresnel/
這篇文章寫的很詳細,什么是菲涅爾現(xiàn)象痕惋。

所以很多基于物理的渲染會選擇使用更加復雜的的漫反射項來模擬更加真實的次表面散射的結果区宇,如Disney BRDF

Disney BRDF

其中baseColor是表面顏色,一般通過紋理采樣得到值戳,roughness是表面粗糙度议谷。這個公式既考慮了掠射角的反射的情況,也考慮了粗糙度對漫反射的影響堕虹。Disney使用了Schlick 菲涅耳近似等式來模擬掠射角的反射變化卧晓,同時使用粗糙度進一步修改它,這使得光滑材質(zhì)在掠射角也可以有明顯的的陰影邊赴捞。
菲涅爾近似式

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末逼裆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子赦政,更是在濱河造成了極大的恐慌胜宇,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昼钻,死亡現(xiàn)場離奇詭異掸屡,居然都是意外死亡,警方通過查閱死者的電腦和手機然评,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門仅财,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人碗淌,你說我怎么就攤上這事盏求。” “怎么了亿眠?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵碎罚,是天一觀的道長。 經(jīng)常有香客問我纳像,道長荆烈,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮憔购,結果婚禮上宫峦,老公的妹妹穿的比我還像新娘。我一直安慰自己玫鸟,他們只是感情好导绷,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著屎飘,像睡著了一般妥曲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钦购,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天檐盟,我揣著相機與錄音,去河邊找鬼肮雨。 笑死遵堵,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的怨规。 我是一名探鬼主播陌宿,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼波丰!你這毒婦竟也來了壳坪?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤掰烟,失蹤者是張志新(化名)和其女友劉穎爽蝴,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體纫骑,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡蝎亚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了先馆。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片发框。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖煤墙,靈堂內(nèi)的尸體忽然破棺而出梅惯,到底是詐尸還是另有隱情,我是刑警寧澤仿野,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布铣减,位于F島的核電站,受9級特大地震影響脚作,放射性物質(zhì)發(fā)生泄漏葫哗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望劣针。 院中可真熱鬧桨螺,春花似錦、人聲如沸酿秸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辣苏。三九已至,卻和暖如春哄褒,著一層夾襖步出監(jiān)牢的瞬間稀蟋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工呐赡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留退客,地道東北人。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓链嘀,卻偏偏與公主長得像萌狂,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子怀泊,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355