五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

【LearnOpenGL】【P11】創(chuàng)建多種類(lèi)型的光源

2023-04-19 00:25 作者:Code有毒  | 我要投稿

0 上一章節(jié)我們創(chuàng)建了一個(gè)黑客帝國(guó)風(fēng)格的材質(zhì)效果。本章節(jié)我們將把光源的種類(lèi)進(jìn)行擴(kuò)充。

(1)定向光實(shí)現(xiàn)。

(2)點(diǎn)光源實(shí)現(xiàn)。

(3)聚光實(shí)現(xiàn)。

(4)將不同種類(lèi)的投光物進(jìn)行抽象。


?1 定向光實(shí)現(xiàn)。

1.0由于定向光的光照方向不會(huì)隨著光源位置的移動(dòng)而發(fā)生變化,所以光源屬性里不需要光源的位置,只需要光源的方向即可。

1.1 設(shè)置好定向光的方向向量,編譯運(yùn)行程序可得到固定光照方向的場(chǎng)景。

2 點(diǎn)光源實(shí)現(xiàn)。

2.0 點(diǎn)光源的光源方向根據(jù)光源的位置確定。點(diǎn)光源的重點(diǎn)在于從該光源發(fā)出的光照強(qiáng)度會(huì)隨著光源到著色片段的距離增加而逐漸減弱。光源離片段越近光越亮,離的越遠(yuǎn)光越暗。具體的衰減關(guān)系如下所示:

2.1 我們根據(jù)點(diǎn)光源的衰減公式,設(shè)置好點(diǎn)光源的光照屬性,并使用這些衰弱參數(shù)實(shí)現(xiàn)光照衰弱公式計(jì)算出光線(xiàn)的衰減系數(shù),將衰減系數(shù)乘以Phong光照模型參數(shù)便是點(diǎn)光源的光照模型。

2.2 點(diǎn)光源的衰減系數(shù)一般情況下可按下表進(jìn)行經(jīng)驗(yàn)值設(shè)置。

2.3 編譯運(yùn)行程序,可得到點(diǎn)光源的渲染場(chǎng)景。此時(shí)可以看到由于點(diǎn)光源距離被照物體較遠(yuǎn),所以整個(gè)場(chǎng)景看起來(lái)很暗。

?

3 聚光實(shí)現(xiàn)。

3.0 聚光的原理關(guān)鍵在于需要預(yù)先設(shè)置好光錐的切光角度,根據(jù)著色片段與光源的位置來(lái)判斷該著色片段是否處于光錐范圍之內(nèi)。如果在光錐范圍內(nèi)則進(jìn)行著色,如果不在光錐范圍內(nèi)則只對(duì)該片段進(jìn)行環(huán)境光的渲染。

3.1 編譯運(yùn)行程序后可看到聚光源的效果,這個(gè)效果就像手電筒的一束光照射在箱子上一樣。但是此時(shí)光錐邊緣的片段光照過(guò)渡非常生硬,在光錐之內(nèi)的片段很亮,在光錐之外的片段就直接黑掉了。

3.2 為了解決光錐邊緣光線(xiàn)過(guò)渡生硬的問(wèn)題,我們需要引入內(nèi)外光錐的概念。此時(shí)如著色片段在內(nèi)光錐之內(nèi)則會(huì)很亮。如著色片段在內(nèi)光錐與外光錐之間則會(huì)根據(jù)位置進(jìn)行插值計(jì)算,光照強(qiáng)度由內(nèi)至外會(huì)逐漸減少。當(dāng)著色片段位于外光錐之外時(shí),則只進(jìn)行環(huán)境光渲染。

3.3 編譯運(yùn)行程序可得到一個(gè)光錐邊緣被過(guò)渡的場(chǎng)景。此時(shí)的場(chǎng)景是不是很有恐怖片里主角拿著手電筒去鬼屋場(chǎng)景探索的氛圍?

?

4 將不同種類(lèi)的投光物進(jìn)行抽象。

4.0 我們已經(jīng)將三種不同類(lèi)型的投光物給實(shí)現(xiàn)了一遍,現(xiàn)在我們需要將其抽象整理出來(lái)。首先我們需要把三種投光物的光照屬性參數(shù)抽象成對(duì)應(yīng)的光照屬性數(shù)據(jù)結(jié)構(gòu)。

4.1 定義好投光物的光照屬性數(shù)據(jù)結(jié)構(gòu)之后,我們需要使用這些數(shù)據(jù)結(jié)構(gòu)來(lái)生成投光物的對(duì)象。(其中點(diǎn)光源對(duì)象是一個(gè)數(shù)組,意味著我們可以在場(chǎng)景中設(shè)置多個(gè)點(diǎn)光源)

4.2 定義三種投光物各自對(duì)應(yīng)的光照計(jì)算函數(shù)接口。

4.3 此時(shí)的Phong著色模型將被抽象為三種投光物的著色信息之和。

4.4 我們?cè)趫?chǎng)景中設(shè)置好多個(gè)點(diǎn)光源的位置,并按順序繪制點(diǎn)光源模型。

4.5 按照三種投光物的光照屬性,設(shè)置好對(duì)應(yīng)的光照信息。

4.6 編譯運(yùn)行程序,我們即可得到多種投光物共同作用的光照?qǐng)鼍啊?br>

4.7 我們還可以再玩點(diǎn)花的。通過(guò)調(diào)整背景顏色,以及三種投光物的顏色屬性可創(chuàng)造出風(fēng)格各異的渲染場(chǎng)景。


【LearnOpenGL】【P11】創(chuàng)建多種類(lèi)型的光源的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
资溪县| 赞皇县| 湘潭县| 田东县| 巴林左旗| 西昌市| 兴隆县| 西充县| 长海县| 石台县| 邯郸县| 潜江市| 利辛县| 留坝县| 沙坪坝区| 海伦市| 庄河市| 策勒县| 平顶山市| 阿城市| 泸水县| 疏附县| 富川| 虎林市| 仲巴县| 德江县| 江源县| 永善县| 黄骅市| 拉萨市| 彰化县| 涟源市| 泾川县| 虹口区| 任丘市| 塘沽区| 衢州市| 台北市| 五寨县| 望江县| 波密县|