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

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

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

2022-11-11 12:40 作者:柯昌弟弟c  | 我要投稿

第八章

上次加了漫反射材質(zhì),這次我們加入更多的材質(zhì)。

先搞一個材質(zhì)的抽象類,這里要注意兩點(diǎn):

  1. 會生成散射光線(或者說它吸收了散射的射線)

  2. 既然有散射,那么衰減率是多少

先聲明這個類:

material.h

材質(zhì)對于物體來說是必要有的一個屬性,整理一下hit_record結(jié)構(gòu)體:

hitable.h

修改好hit_record之后對應(yīng)的sphere中也要添加材質(zhì),也進(jìn)行一個簡單修改:

sphere.h

處理完hitable相關(guān)的之后,上一章中的漫反射材質(zhì)lambertian我們將他寫成一個類。

之前對于漫反射材質(zhì)來說,都有兩種情況,1是光線一直發(fā)生散射;2是光線每次都衰減 每次都被物體吸收1 - R的光線,這里也可以混合。那么我們lambertian類(上次在main中的隨機(jī)半球內(nèi)一點(diǎn)的方法也搬過來了):

新的material.h

然后要注意的是,我們也可以讓光根據(jù)一定的概率p發(fā)生散射,也可以按照光線的衰減率albedo/p來計(jì)算,作者覺得這個隨意。(這個albedo和代碼里的attenuation是一個意思)。

接下來寫一下金屬材質(zhì),對于金屬材質(zhì)而言,光線不會隨機(jī)散射出去。那么根據(jù)書里的圖就能簡單清晰的看到光線的實(shí)際路徑和其中的數(shù)學(xué)關(guān)系:

光線擊中金屬物體的反射圖

紅色的反射射線方向僅為(v+2b),這里n是知道的單位法向量,v是射光線但不一定是單位向量,b的長度是可求的 dot(v,n),因?yàn)橄蛄縱和b是方向相反的,那么帶入得到:

v + (- 2 dot(v,n) * n)。寫到代碼里:

反射公式

反射公式也有了,那就可以寫一個金屬材質(zhì)類了:

這個部分我也是放在material.h里面

現(xiàn)在我們寫好了材質(zhì)類以及新的金屬類,回到主函數(shù),將主函數(shù)和color方法都修改一下:

新的main.cpp

最后運(yùn)行的得到的圖就是這個了,沒得到就說明你寫錯啦。

左右兩邊的反光效果是不一樣的喲,可以多嘗試使用不同數(shù)值進(jìn)行對比

反射的方向其實(shí)可以是隨機(jī)的

虛線球體

不過這樣的話就會發(fā)現(xiàn),球體越大,反射的效果就越是粗糙模糊。這就要引入一個參數(shù)fuzz來控制這個粗糙模糊的程度。如果fuzz=0那就說明沒有模糊現(xiàn)象,那么這樣的話隨機(jī)球的半徑變大, 光線就可能會散射到物體內(nèi)部。而fuzz的最大值,我們設(shè)置到1。寫到metal材質(zhì)中:

添加fuzz

輸出三張不一樣數(shù)值的圖:

fuzz=0.1時
fuzz=0.5時
fuzz=1時

好了,本章節(jié)就結(jié)束了。書中有些部分確實(shí)給的不夠完整,我也會將我注意到的點(diǎn)給大家分享一下。下一篇中的內(nèi)容大家一定要仔細(xì)觀看,已得到最好結(jié)果。

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

分享到微博請遵守國家法律
隆子县| 资溪县| 沙坪坝区| 钦州市| 肇源县| 外汇| 潮州市| 长治市| 大港区| 义马市| 东乌珠穆沁旗| 连云港市| 迁安市| 凤冈县| 峡江县| 财经| 梧州市| 肥东县| 威宁| 南丹县| 集安市| 拉萨市| 勃利县| 青岛市| 正宁县| 莱西市| 通渭县| 辛集市| 鹤峰县| 木里| 扬中市| 内江市| 焉耆| 佛山市| 乌鲁木齐县| 应城市| 南木林县| 新巴尔虎右旗| 闵行区| 馆陶县| 乐清市|