国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Unity 學(xué)習(xí)第五篇:Lambert (蘭伯特)光照模型

2023-03-10 22:49 作者:依稀愛戀  | 我要投稿

漫反射的定義

漫反射是投射在粗糙表面上的光向各個(gè)方向反射的現(xiàn)象。當(dāng)一束平行的入射光線射到粗糙的表面時(shí),表面會(huì)把光線向著四面八方反射,所以入射線雖然互相平行,由于各點(diǎn)的法線方向不一致,造成反射光線向不同的方向無規(guī)則地反射,這種反射稱之為“漫反射”或“漫射”。這種反射的光稱為漫射光。

Lambert定律

漫反射光的強(qiáng)度近似地服從于Lambert定律,即漫反射光的光強(qiáng)與表面法線和光源方向之間的夾角的余弦成正比。


原理公式:diffuse = I*cosθ;

diffuse:反射光線的的光強(qiáng);

I:入射光線的光強(qiáng),方向如上圖所示;

cosθ:光源方向和該頂點(diǎn)法線的余弦,光源方向 · 法線方向,cosθ = dot(L,N);

在Unity中當(dāng)顏色值小0時(shí)會(huì)按0處理,所以我們最后的數(shù)學(xué)表達(dá)式為:diffuse = I*max(0,dot(L,N));

在Unity Shader

半蘭伯特光照模型

把上面的效果應(yīng)用到Unity中,可以看出不被光照射的背面是比較暗的,此時(shí)我們可以優(yōu)化蘭伯特光照模型,有人提出了半蘭伯特光照模型。
由上面的公式diffuse = I*max(0,dot(N,L)),可知dot(N,L)的范圍為-1~1,如果我們可以把范圍調(diào)整為0 ~1,那么模型看起來會(huì)更亮些,我們優(yōu)化下讓?dot(L,N)*0.5+0.5,這樣范圍就改為了0 ~1。
最后的公式為:
diffuse = I*max(0,dot(N,L)*0.5+0.5)

半蘭伯特Shader程序

從相同的視角來觀察兩個(gè)模型,效果對(duì)比如下:


Unity 學(xué)習(xí)第五篇:Lambert (蘭伯特)光照模型的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
滦南县| 鹤壁市| 竹山县| 平阳县| 灌南县| 临西县| 栾城县| 宣武区| 英超| 鄯善县| 千阳县| 隆德县| 昌宁县| 肇庆市| 芜湖县| 迁西县| 庆云县| 运城市| 蓝田县| 黄梅县| 虹口区| 延长县| 永顺县| 镶黄旗| 林周县| 新昌县| 大埔区| 罗山县| 涞水县| 德庆县| 大港区| 通城县| 望都县| 北安市| 色达县| 德庆县| 连平县| 桐乡市| 通河县| 固始县| 贵溪市|