Unity Shader學(xué)習(xí)-3.光照模型

光照是3D游戲中一個(gè)必不可少的部分疆液,場(chǎng)景氛圍的渲染需要光照來(lái)表現(xiàn):

巫師3.jpg

上面是巫師3中的夜景,如果沒(méi)有光的畫整個(gè)表現(xiàn)力將會(huì)降低很大的一個(gè)層次疾渴,這一節(jié)我們將了解光照的形成過(guò)程以及各個(gè)光照模型睬捶。

一奶赠、光源:

1.光形成圖像的過(guò)程

先來(lái)了解一下光線從產(chǎn)生到形成我們眼中圖像的過(guò)程:

光形成圖像

這當(dāng)中涉及到光的反射、折射熙尉,最后光進(jìn)入人眼联逻,形成了圖像,這就是光形成圖像的過(guò)程检痰。

2.光源的相關(guān)要素

1.矢量:

光源是一個(gè)矢量包归,他具體位置和方向,例如Unity中的方向光铅歼、點(diǎn)光源公壤,都具備矢量的性質(zhì)。

2.量化:

下面是維基百科中關(guān)于光強(qiáng)的介紹

輻照度:輻照度表示各種頻率輻射的總量椎椰。物理學(xué)者時(shí)常也會(huì)分開(kāi)檢驗(yàn)輻射頻譜的每一單獨(dú)頻率厦幅。假設(shè)對(duì)于入射于曲面的輻射做這動(dòng)作,則稱這輻射為光譜輻照度(spectral irradiance)慨飘,國(guó)際單位制的單位為W/m2确憨。在光學(xué)和激光物理學(xué)中,輻照度也被叫做光強(qiáng)瓤的。

地面上一塊平面的總輻照度等于“直接輻照度”與“漫輻照度”的代數(shù)和休弃,光強(qiáng)與光和物體表面的夾角有關(guān),具體會(huì)在下面介紹堤瘤。

光強(qiáng)與夾角相關(guān)

3.光的吸收與散射

光線發(fā)射出來(lái)與物體相交后玫芦,會(huì)有兩個(gè)結(jié)果,一個(gè)是散射另一個(gè)是吸收本辐。

  • 散射:只改變光線方向桥帆,而不改變光線密度和顏色医增。散射根據(jù)光線改變后的方向分為兩種,若光線散射到物體內(nèi)部的現(xiàn)象則稱為折射老虫,而散射到物體外部的現(xiàn)象則稱為反射叶骨。
  • 吸收:只改變光線的密度和顏色,而不改變光線方向祈匙。
光的吸收/散射

從上圖中我們可以看到光從發(fā)射到與物體表面相交后的各種情況忽刽,光線有的被吸收有的被反射有的發(fā)生了折射。其中的藍(lán)色光線表示漫反射夺欲,而黃色光線表示高光反射跪帝。在光照模型中我們會(huì)使用不同部分來(lái)表示光線的這幾種情況:

  • 高光反射(Specular):表示物體表現(xiàn)是如何直接反射光線的
  • 漫反射(Diffuse):表示光線如何被折射及吸收后反射的

通常用出射度表示出射光線的數(shù)量和方向,出射度輻照度之間是存在線性關(guān)系的些阅。

4.著色

著色指的是根據(jù)材質(zhì)屬性伞剑、光源屬性,使用一個(gè)公式去計(jì)算沿某個(gè)觀察方向的光線出射度的過(guò)程市埋,這個(gè)公式我們也將之稱為光照模型黎泣。

5.各向異性與各向同性

各向異性 (anisotropy ) 與 均向性 相反,是指在不同方向具有不同行為的性質(zhì)缤谎,也就是其行為與方向有關(guān)抒倚。如在物理學(xué)上,沿著材料做不同方向的量測(cè)坷澡,若會(huì)出現(xiàn)不同行為托呕,通常稱該材料具有某種“ 各向異性 ” ,這樣的材料表面稱為各向異性表面( anisotropic surface )频敛。

光照模型中也存在著各向同性和各向異性的區(qū)別镣陕,例如Lambert漫反射模型是各向同性的,無(wú)論我們從哪個(gè)方向進(jìn)行觀察姻政,物體表面的光照表現(xiàn)都是不變的呆抑,而Phong光照模型中的高光反射則是各向異性的,物體表面的光照表現(xiàn)會(huì)隨著觀察角度的變化而變化汁展。

二鹊碍、光照模型

現(xiàn)實(shí)世界的光照是非常復(fù)雜的,若要準(zhǔn)確的模擬食绿,整體計(jì)算量會(huì)非常的大侈咕,這在游戲渲染中是不現(xiàn)實(shí)的,而光照模型則提供了一種性價(jià)比較高的方案器紧,它是一種經(jīng)驗(yàn)?zāi)P?/strong>耀销,是對(duì)真實(shí)場(chǎng)景進(jìn)行理想化和簡(jiǎn)化后的模型,可以模擬光從發(fā)射到與物體相交再到人眼中的效果铲汪。

計(jì)算機(jī)圖形學(xué)第一定律:如果它看來(lái)是對(duì)的熊尉,那么它就是對(duì)的

現(xiàn)實(shí)世界中的光照罐柳,分為兩種直接光照間接光照

  • 直接光照:表示直接從光源發(fā)射出來(lái)照射到物體表面后,光線經(jīng)過(guò)物體表面的一次反射后直接進(jìn)入攝像機(jī)

  • 間接光照:表示光線從光源發(fā)射出來(lái)后狰住,經(jīng)過(guò)不止一次的物體反射后進(jìn)入攝像機(jī)

標(biāo)準(zhǔn)光照模型

光照模型有不同種類张吉,而游戲引擎中往往只使用一個(gè)光照模型,我們稱之為標(biāo)準(zhǔn)光照模型催植。一般光照模型會(huì)包含以下幾個(gè)要素:

  • 自發(fā)光(Emission):用于描述當(dāng)給定一個(gè)方向時(shí)肮蛹,一個(gè)表面本身會(huì)向該方向發(fā)射多少輻射量。
  • 環(huán)境光(Ambient):在現(xiàn)實(shí)世界中無(wú)論多么黑暗创南,世界都會(huì)有一些光亮(月光伦忠、遠(yuǎn)處的光)在照亮物體,環(huán)境光就是用于模擬無(wú)論什么情況都會(huì)給物體顏色的這種情況稿辙。
  • 漫反射(Diffuse):模擬一個(gè)發(fā)光物體對(duì)物體的方向性影響缓苛,面向光的一面會(huì)比另一面更亮。
  • 高光(Specular):模擬有光澤物體表面上的亮點(diǎn)邓深,其顏色更傾向于光的顏色而不是物體表面的顏色。

標(biāo)準(zhǔn)光照模型只關(guān)心直接光照笔刹,下面說(shuō)一下標(biāo)準(zhǔn)光照模型的歷史芥备。

1.Lambert模型

Lambert是理想的漫反射模型,他表現(xiàn)的材質(zhì)較為均勻舌菜,不能反映粗糙度帶來(lái)的變化萌壳。

Diffuse

同等數(shù)量的光照射的面積越小,單位表面積收到的光的能量越多日月,這個(gè)原則也構(gòu)成了Lambert定律

Lambert定律:反射光照的強(qiáng)度與表面法線和光源方向夾角的余弦值成正比

漫反射模型

因此Lambert對(duì)應(yīng)的公式為:

C(result) = n · i · (C(light)·C(diffuse))

其中n向量表示表面法線袱瓮,i向量表示光與表面交點(diǎn)指向光源的向量,C(light)表示光的顏色爱咬,C(diffuse)表示漫反射的系數(shù)尺借。

2.Phong(馮氏光照模型)(1975)

馮氏光照模型引入了高光來(lái)增強(qiáng)渲染真實(shí)感,從下圖可以看到精拟,他引入了觀察者視角這一參數(shù)燎斩,反射向量R與視角向量V的夾角決定了高光的強(qiáng)度。

Phong = Ambient(環(huán)境光)+ Diffuse(漫反射) + Specular(高光)

Phong

從上圖可以看到蜂绎,Phong氏光照模型由三個(gè)部分組成:環(huán)境光栅表、漫反射、高光反射师枣。其中的Diffuse在上面已經(jīng)講過(guò)了怪瓶,而Specular(高光反射)則是一個(gè)與用戶視線相關(guān)的值,通過(guò)反射光線的向量視線方向的點(diǎn)積來(lái)影響高光的值践美,如果反射光線與視線方向的夾角越小洗贰,則高光的作用越大找岖。同時(shí)還加入了一個(gè)發(fā)光值(Shiness),來(lái)控制高光擴(kuò)散程度哆姻。下面是Phong模型的數(shù)學(xué)展示圖宣增。

Phong光照模型

C(Specular) = (C(light)·C(Specular))·pow(max(0, V·R), shiness)
其中C(light)表示光的顏色,C(Specular)表示高光反射的系數(shù)矛缨,shiness則表示發(fā)光值爹脾。下面看下不同的發(fā)光值對(duì)Phong的影響,可以看到發(fā)光值越大箕昭,散射得越少灵妨,高光點(diǎn)越小

不同的發(fā)光值

Phong模型是在片段著色器中實(shí)現(xiàn)的落竹,而在早期的光照著色器中泌霍,開(kāi)發(fā)者在著色器中實(shí)現(xiàn)馮氏光照,這種模型Gouraud模型述召,下面是這兩者的區(qū)別朱转。

  • Phong模型:在片段著色器中實(shí)現(xiàn),效果好积暖,效率相對(duì)低
  • Gouraud模型:在頂點(diǎn)著色器中實(shí)現(xiàn)藤为,效果差,效率相對(duì)高
Phong&Gouraud

3.Blinn-Phong(1977)

Phong模型效果不錯(cuò)夺刑,性能也較高缅疟,但是,如果光源在靠近視野的位置的話就會(huì)出現(xiàn)反射向量與視線向量的夾角大于90度遍愿,從上面的Specular公式可以知道存淫,Phong模型不允許兩向量的點(diǎn)積值小于0,也就是不允許他們的夾角大于90度沼填。

光源在靠近視野的位置

上面這種情況會(huì)導(dǎo)致鏡面區(qū)域邊緣迅速減弱并截止桅咆,如下圖遠(yuǎn)處的暗處:

迅速減弱 截止

1977年James F. Blinn引入了Blinn-Phong著色,它擴(kuò)展了我們目前所使用的Phong著色坞笙。Blinn-Phong模型很大程度上和Phong是相似的轧邪,不過(guò)它稍微改進(jìn)了Phong模型,使之能夠克服我們所討論到的問(wèn)題羞海。

Blinn-Phong

Blinn-Phong中引入了半程向量這一概念忌愚,半程向量h是視線向量與光線方向向量的和歸一化后的結(jié)果,將這個(gè)值與表面法線進(jìn)行點(diǎn)乘得到結(jié)果却邓。

h = normalize(lightdir + viewdir)
C(Specular) = (C(light)·C(Specular))·pow(max(0, h·n), shiness)

引入半程向量來(lái)計(jì)算鏡面反射后硕糊,我們?cè)僖膊粫?huì)遇到Phong著色的截止問(wèn)題了,下面是對(duì)比圖:

Phong & Blinn-Phong

可以看到截止的問(wèn)題已經(jīng)消失了,整個(gè)過(guò)渡更加的真實(shí)简十。

Unity實(shí)現(xiàn)對(duì)應(yīng)光照模型

To be continued...

參考

[1]https://zh.wikipedia.org/wiki/輻照度
[2]http://www.cnblogs.com/mengdd/archive/2013/08/05/3238123.html
[3]http://learnopengl-cn.readthedocs.io/zh/latest/02%20Lighting/02%20Basic%20Lighting/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末檬某,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子螟蝙,更是在濱河造成了極大的恐慌恢恼,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胰默,死亡現(xiàn)場(chǎng)離奇詭異场斑,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)牵署,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門漏隐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人奴迅,你說(shuō)我怎么就攤上這事青责。” “怎么了取具?”我有些...
    開(kāi)封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵脖隶,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我暇检,道長(zhǎng)产阱,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任占哟,我火速辦了婚禮,結(jié)果婚禮上酿矢,老公的妹妹穿的比我還像新娘榨乎。我一直安慰自己,他們只是感情好瘫筐,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布蜜暑。 她就那樣靜靜地躺著,像睡著了一般蒸绩。 火紅的嫁衣襯著肌膚如雪察迟。 梳的紋絲不亂的頭發(fā)上允扇,一...
    開(kāi)封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音拙毫,去河邊找鬼。 笑死棺禾,一個(gè)胖子當(dāng)著我的面吹牛缀蹄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼缺前,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蛀醉!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起衅码,我...
    開(kāi)封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤拯刁,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后逝段,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體垛玻,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年惹恃,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了夭谤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡巫糙,死狀恐怖朗儒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情参淹,我是刑警寧澤醉锄,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站浙值,受9級(jí)特大地震影響恳不,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜开呐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一烟勋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧筐付,春花似錦卵惦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至较解,卻和暖如春畜疾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背印衔。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工啡捶, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人奸焙。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓届慈,卻偏偏與公主長(zhǎng)得像徒溪,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子金顿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 版本記錄 前言 OpenGL 圖形庫(kù)項(xiàng)目中一直也沒(méi)用過(guò)臊泌,最近也想學(xué)著使用這個(gè)圖形庫(kù),感覺(jué)還是很有意思揍拆,也就自然想著...
    刀客傳奇閱讀 6,026評(píng)論 0 2
  • 現(xiàn)實(shí)世界的光照是極其復(fù)雜的渠概,而且會(huì)受到諸多因素的影響,這是以目前我們所擁有的處理能力無(wú)法模擬的嫂拴。因此OpenGL的...
    IceMJ閱讀 1,945評(píng)論 1 6
  • 一播揪、Surface Output (表面著色器的標(biāo)準(zhǔn)輸出結(jié)構(gòu))Surface Shader的標(biāo)準(zhǔn)輸出結(jié)構(gòu)-第一要素...
    CarlDonitz閱讀 909評(píng)論 0 1
  • 一.標(biāo)準(zhǔn)光照模型OpenGL與Direct3D提供了幾乎相同的固定功能光照模型。什么是固定功能光照模型?在過(guò)去只有...
    karma085閱讀 3,613評(píng)論 0 2
  • 給予 父母給予我生命 書籍給予我知識(shí) 食物給予我能量 朋友給予我交際 工作給予我成長(zhǎng) 生活給予我成熟 經(jīng)常在唱誦給...
    Panda盼子閱讀 247評(píng)論 4 0