最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)遵守國家法律
克拉玛依市| 阿克陶县| 吉隆县| 延边| 镇江市| 钦州市| 杭锦旗| 合江县| 达孜县| 镇安县| 沙河市| 宁阳县| 台东市| 麦盖提县| 格尔木市| 京山县| 康定县| 萝北县| 巴彦淖尔市| 巴中市| 宣威市| 清镇市| 平顶山市| 武隆县| 剑川县| 札达县| 桦川县| 平顺县| 河池市| 保德县| 马尔康县| 海原县| 逊克县| 岑溪市| 夹江县| 安乡县| 灌阳县| 富锦市| 漳平市| 牟定县| 南丰县|