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

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

阿昌學(xué)習(xí)《RayTraing in one week》 (五)

2022-11-03 16:17 作者:柯昌弟弟c  | 我要投稿

第五章

這第五章主要是加入了曲面法線和多個(gè)物體。

曲面法線:就是垂直于一個(gè)曲面的向量;(作者在里提到說(shuō)是否用單位法向量是屬于個(gè)人愛(ài)好)

對(duì)于球體來(lái)說(shuō),法線就是光線與球的焦點(diǎn)減去球心

這里取得是向球外的法相

接下來(lái)我們將這個(gè)法線可視化,法線就是個(gè)vec3,我們就把這個(gè)vec3轉(zhuǎn)化顏色的數(shù)值,這里要注意的是法向量取值是(-1,1),顏色是(0,1),那么可以(x+1,y+1,z+1)*0.5,這樣就可以轉(zhuǎn)成顏色的rgb了。

那么我們將原來(lái)的代碼修改一下:

hit_sphere改為返回值float

得到下邊的法線圖:

曲面法線圖

接下來(lái)我們要給我們的場(chǎng)景添加多個(gè)物體了,原本可以直接添加另一個(gè)物體,但我們直接選擇優(yōu)化一下,創(chuàng)建一個(gè)物體的抽象類,來(lái)讓物體繼承這個(gè)抽象類,只要這個(gè)物體和光線有交點(diǎn)那么就繼承它,既然是有相交的物體,那么這個(gè)抽象類就叫hitable好了。

根據(jù)一元二次方程組求解以及光線方程,我們知道光線如果和物體有交點(diǎn),那么t就會(huì)有一個(gè)取值范圍 t_min < t < t_max ,這樣就可以計(jì)算出那一個(gè)交點(diǎn)離我們更近。

先添加一下抽象類:

hitable.h

接下來(lái)寫(xiě)一個(gè)繼承hitable的球類sphere:

sphere.h

有了一個(gè)比較完整的物體球類,再寫(xiě)一個(gè)列表,方便存儲(chǔ)多個(gè)對(duì)象:

hitable_list.h

同樣的main也進(jìn)行修改,原來(lái)的hit_sphere就可以刪除了,新的main.cpp

main.cpp

運(yùn)行之后的得到的就是下邊這個(gè)圖了,綠色的部分就是新加的大球

越來(lái)越像一個(gè)正經(jīng)的場(chǎng)景了 啾咪~

下一章要添加抗鋸齒了,這樣就可以讓圖片更有feel了。

阿昌學(xué)習(xí)《RayTraing in one week》 (五)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
册亨县| 旅游| 府谷县| 定州市| 湛江市| 萨嘎县| 讷河市| 望江县| 巴林左旗| 宁津县| 渝中区| 和政县| 军事| 航空| 明溪县| 通许县| 宁乡县| 灵川县| 河源市| 马山县| 博白县| 巴青县| 普格县| 中山市| 慈利县| 武陟县| 吴江市| 阿城市| 根河市| 大埔县| 桓台县| 鞍山市| 军事| 元谋县| 江口县| 孟津县| 淄博市| 馆陶县| 织金县| 城口县| 石楼县|