大聰明都能看懂的光照模型(Phong模型)

????隨著UE5發(fā)布,動(dòng)態(tài)全局光照,光線追蹤,lumen等詞如雨后春筍般呼啦啦,嘩嘩嘩的出現(xiàn)在公眾號(hào)和各種視頻中,基于輻射度量學(xué)的幾乎完全模擬了光線傳輸過(guò)程的各種算法,將游戲的真實(shí)感提升到了從前難以想象昂的高度。但是在那個(gè)沒(méi)有l(wèi)umen on,rtx on的年代,人們又是靠什么來(lái)呈現(xiàn)畫面真實(shí)感的呢?今天來(lái)聊一個(gè)完全,完全,完全靠經(jīng)驗(yàn)搭建起來(lái)的圖形學(xué)入門之避不開(kāi)的噩夢(mèng)之 《Phong光照模型》

????phong模型呢首先是這么說(shuō)的,首先他認(rèn)為,當(dāng)場(chǎng)景中沒(méi)有燈光的時(shí)候,物體擺到場(chǎng)景中不能是黑的,那黑乎乎一坨啥玩意沒(méi)有那哪行吶,所以,當(dāng)場(chǎng)景中沒(méi)有光的時(shí)候phong認(rèn)為要給物體一個(gè)基礎(chǔ)顏色,最起碼讓人能看著點(diǎn)什么玩意,這時(shí)候能讓你看著些玩意的光給個(gè)學(xué)名就叫環(huán)境光。環(huán)境光 環(huán)境光,環(huán)境里面啥玩意也沒(méi)有的光,是不是聽(tīng)起來(lái)就特別合理。
????這個(gè)光是一個(gè)很公平的光,只要你在場(chǎng)景中,所有物體雨露均沾,所以我們可以用一個(gè)常量來(lái)表示。考慮到光照出來(lái)應(yīng)該是衰減的,所以給一(0, 1)的常量就可以了。大概會(huì)產(chǎn)生這樣一個(gè)塑料感滿滿的樣子

????這玩意塑料感還是其次,主要是各點(diǎn)給了一樣的值以后根本看不出來(lái)正反面,上圖中是一個(gè)立方體,但眼神不好的人還真一眼看不出來(lái),而phong模型的第二個(gè)組成部分漫反射,咔咔咔就把這個(gè)問(wèn)題解決了。
????漫反射是怎么描述的呢,我們先來(lái)看這么個(gè)圖

????黃色箭頭指的是該著色點(diǎn)的法線,phong認(rèn)為著色點(diǎn)的漫反射分量應(yīng)該和光照角度有關(guān),具體的說(shuō)就是光照方向和法線的夾角越小,這一點(diǎn)的漫反射分量就應(yīng)該越強(qiáng),漫反射,就有辣種光打到一個(gè)點(diǎn)向四面八方散開(kāi)的感覺(jué),所以說(shuō)呢,光肯定是垂直打到著色點(diǎn)返回來(lái)的光是最強(qiáng)的即最亮的,而和法線方向夾角越大,光散射出去的能量就越多,也就越暗,當(dāng)光和法線垂直打進(jìn)來(lái)的時(shí)候,自然能量也就全部擴(kuò)散出去了,應(yīng)該就是黑的。
????總結(jié)一下,漫反射和燈光與著色點(diǎn)的夾角有關(guān),并且關(guān)系是夾角越小越亮,夾角越大越暗,0度時(shí)候最亮,90度時(shí)候最暗,誒有,這么說(shuō)的話是不是就和這個(gè)玩意比較像

????對(duì),這個(gè)地方就是可以用光線入射方向的矢量和法線向量的余弦值來(lái)表示漫反射的大小,但是計(jì)算cos比較浪費(fèi)時(shí)間,我們可以用

????由于a b都是單位向量,所以可以用點(diǎn)積代替夾角余弦值。還有注意的是矢量夾角大于90度的時(shí)候點(diǎn)積為負(fù)數(shù),我們需要做一個(gè)>0的保護(hù)。綜上漫反射為
????加入漫反射項(xiàng)以后就可以清晰的看到物體的正反啦!

????phong模型的最后一項(xiàng)是所謂的高光項(xiàng),也叫鏡面光項(xiàng),聽(tīng)這個(gè)名字呢就感覺(jué)這一項(xiàng)跟光線的反射有關(guān),實(shí)際上確實(shí)也是這樣,如下圖所示

? ? 鏡面光描述了光源經(jīng)過(guò)反射進(jìn)入人眼的強(qiáng)度,當(dāng)反射光的方向和人眼的夾角越小時(shí),光越亮,所以鏡面光刻描述為
????當(dāng)人眼視線與反射光方向一致時(shí),高光會(huì)非常亮,我們?cè)谶@里給高光計(jì)算結(jié)果加一個(gè)pow函數(shù)來(lái)模仿這一現(xiàn)象。由此得到鏡面光。

????將環(huán)境光 漫反射 鏡面光三種光源相加,便能夠得到phong模型的最終渲染效果

????ok,以上就是phong光照模型。