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