阿昌學(xué)習(xí)《RayTraing in one week》 (十一)
《第十一章》
《ray traing in one week》最后一個概念就是給攝像機添加一個消音模糊/聚焦模糊,或者通俗點就叫景深。
而對于景深這個概念,就關(guān)系到攝像機的原理了
我用我自己學(xué)習(xí)理解到的說一下景深是什么樣子的:
一束平行光攝入凸透鏡之后,光線會匯聚在一點上,延長,那么光線會在這一點之后離散,這個點就叫做焦點
離散后這束光就像一個圓錐體一樣傳播,而這個圓錐體的底部圓形就叫做彌散圓
人眼是有識別彌散圓的范圍的,就是彌散圓的直徑放的太大了或者太小了就看不清了,那么在能看清的范圍內(nèi)就叫做容許彌散圓(焦點前和焦點后各有一個)
而2個容許彌散圓之間的距離就叫做景深

1)光圈:光圈越大,景深越小。光圈越小,景深越大。
2)鏡頭焦距:鏡頭焦距越長,景深越小。焦距越短,景深越大。
3)拍攝距離:距離越遠,景深越大。距離越近,景深越小。

而這個原理我們需要簡化一下,需要從一個虛擬的透鏡范圍中發(fā)射射線,而這個透鏡與平面的距離就是焦距。

簡單點說就是,我們光線的創(chuàng)建就是經(jīng)歷了下邊三個步驟:
1.原來是從一個點發(fā)射一條光線,最后獲取顏色成像。
2.之后加入了多重采樣,從一個點發(fā)射多條光線取平均值,最后獲取顏色成像。
3.現(xiàn)在則是將從不同的點來發(fā)射光線。
既然發(fā)射光線是在一個圓形的透鏡內(nèi)隨機產(chǎn)生點的,那么就寫一個方法生成這個位置:

全新的攝像機來咯,加入透鏡等參數(shù):

主函數(shù)我們修改一下這個快門光圈,看看效果:

得到的圖和書中基本一致的:

《第十二章》
最后一個部分就是書中的那張圖,沒有額外的太多,我直接把主函數(shù)截圖給家看一下,基本就可以了:

既然是最后的圖,分辨率也是使用了400*300,看一下我的輸出結(jié)果吧:

到這里呢,One weenkend就是結(jié)束了,接下來就是 next week了,我也會持續(xù)更新的。
也給自己打個氣,目前學(xué)了raytracing這個書,接下來一定要把光線追蹤的圣經(jīng)《Physically Based Rendering:From Theory To Implementation》(PBRT)好好學(xué)一下,加油啦!
如果有興趣可以私信我,一起努力。