圖形學(xué)離線渲染中常用的透視攝像機(jī)模型時(shí)根據(jù)小孔成像的原理建立的,其實(shí)現(xiàn)通常是從eye向成像平面上發(fā)射ray,并把trace這條ray的結(jié)果作為成像平面上對(duì)應(yīng)交點(diǎn)的采樣結(jié)果。即:
圖片來(lái)自《Fundamentals of Computer Graphics》
現(xiàn)實(shí)中的鏡頭拍攝的圖像有景深(Depth of field)的效果,譬如:
圖片來(lái)自網(wǎng)絡(luò)
顯然,上圖中的耳機(jī)被放在攝像機(jī)的焦平面附近,成像很清晰;背景中的景物則離焦平面較遠(yuǎn),呈現(xiàn)出模糊的效果。對(duì)離線渲染而言,這一效果有利于加強(qiáng)渲染結(jié)果的真實(shí)性和層次感。但之前提到的攝像機(jī)模型過(guò)于簡(jiǎn)單,要得到景深,需要更精確的攝像機(jī)模型。
圖片來(lái)自網(wǎng)絡(luò)
上圖是網(wǎng)絡(luò)上給出的關(guān)于景深的一張示意圖,看起來(lái)復(fù)雜駭人。但稍微分析就能知道,使得不在焦平面上的景物顯得模糊的最根本原因恰恰是焦平面的概念本身,如下圖——
圖片來(lái)自網(wǎng)絡(luò)
可以看到,假如在原來(lái)的透視攝像機(jī)模型中加入一個(gè)凸透鏡,那么成像過(guò)程將不再是“一根”光線穿過(guò)小孔到達(dá)成像平面上的一點(diǎn),而是許多光線透過(guò)凸透鏡匯聚到成像平面上的一點(diǎn)。
物體恰好在焦平面上的情形
顯然,假如有一物體正好在焦平面上,那么從上面某一點(diǎn)發(fā)射的光線通過(guò)凸透鏡在成像平面上也會(huì)匯聚于一點(diǎn),于是就得到了清晰的圖像。但是,當(dāng)物體不在焦平面上時(shí),匯聚到成像平面上某一點(diǎn)的光線將不再全部來(lái)自于物體上的一點(diǎn),而是來(lái)自于物體上的一小片區(qū)域,這就形成了模糊的效果,也就是最終看到的景深。
物體不在焦平面上的情形
有了這一模型,要設(shè)計(jì)渲染出景深效果的算法就很容易了。以往從透視攝像機(jī)發(fā)射ray的方法是:
對(duì)成像平面上的一點(diǎn)P,發(fā)射射線 P + t(p - e),其中t >=0,e 是eye點(diǎn)位置。
新的方法則是:
對(duì)成像平面上的一點(diǎn) P,求出射線P + t(o - p)與焦平面的交點(diǎn)x,然后在凸透鏡上隨機(jī)采樣(把凸透鏡看做有一定半徑的圓盤)。對(duì)每一個(gè)采樣點(diǎn)p',發(fā)射射線 p' + t(x - p')。
新方法實(shí)質(zhì)是在凸透鏡所在的disk上對(duì)到達(dá)成像平面上特定點(diǎn)的能量用蒙特卡洛的方法進(jìn)行了估值。
-
攝像機(jī)
+關(guān)注
關(guān)注
3文章
1643瀏覽量
60514 -
光線追蹤
+關(guān)注
關(guān)注
0文章
183瀏覽量
21584
原文標(biāo)題:基于光線追蹤的渲染中景深(Depth of field)效果的實(shí)現(xiàn)
文章出處:【微信號(hào):Imgtec,微信公眾號(hào):Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
遞歸性質(zhì)和大數(shù)目追蹤光線解決方案

光線追蹤技術(shù)的作用
光線追蹤如何實(shí)現(xiàn)實(shí)時(shí)三維圖形?
五步實(shí)現(xiàn)向OpenGL ES延遲光照系統(tǒng)添加光線追蹤

【驚呆!】光線追蹤效果竟然這么震撼!
實(shí)時(shí)光線的混合渲染:光線追蹤VS光柵化
光線投射,光線追蹤與路徑追蹤的概念與區(qū)別

Epic游戲展示了逼真的光線追蹤演示來(lái)到虛幻的引擎
洞悉光線追蹤加速技術(shù)在圖形處理行業(yè)中的未來(lái)
移動(dòng)端的光線追蹤是如何實(shí)現(xiàn)的
SIGGRAPH 2023 | 通過(guò) NVIDIA OptiX 8 實(shí)現(xiàn)靈活且強(qiáng)大的光線追蹤功能

基于光線追蹤的渲染算法實(shí)現(xiàn)

基于光線追蹤實(shí)現(xiàn)反射折射效果

評(píng)論