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

歡迎光臨散文網(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ó)家法律
察雅县| 毕节市| 长春市| 密云县| 平顶山市| 金华市| 秀山| 嘉义市| 烟台市| 鄂州市| 潼关县| 滦平县| 砀山县| 惠东县| 江山市| 来凤县| 类乌齐县| 浮山县| 荆州市| 集贤县| 上犹县| 谷城县| 寻乌县| 虎林市| 桐城市| 滨州市| 衡东县| 慈溪市| 鹤岗市| 张掖市| 雷山县| 永川市| 陆丰市| 长沙县| 永安市| 阳原县| 桑日县| 黄龙县| 兴业县| 阿勒泰市| 云和县|