- 什么是景深?
所謂景深,就是當焦距對准某一點時,焦平面前后圖像仍然清晰的范圍。景深是攝影技術中的術語。它能決定是把背景模糊化來突出拍攝對象,還是拍出清晰的背景。我們經常能夠看到拍攝花、昆蟲等的照片中,將背景拍得很模糊(稱之為小景深)。但是在拍攝紀念照或集體照,風景等的照片一般會把背景拍攝得和拍攝對象一樣清晰(稱之為大景深)。
2. 為什么要用景深特效?
直接渲染的3D圖像並沒有景深的效果,不管距離焦距遠近都是同樣的清晰。為了突出重點,虛化背景,使渲染效果更加真實,我們就有必要模擬攝影中的景深效果。
3. 怎樣模擬景深?
DepthOfFeild是后期處理(PostProcess)中的一種,一般分為如下步驟,
1) 利用MRT,分別把整個場景和場景的深度值渲染到紋理上,供景深PostProcess使用。
2) 利用模糊算法,對原場景紋理進行模糊,得到一張模糊后的場景紋理。
3) 根據每個像素和焦平面的距離,利用一定的算法計算出模糊因子,用模糊因子線性插值原場景紋理和第二步得到的模糊后的場景紋理,得到最終結果。
4. 參考資料
1)D3D SDK自帶的Sample: DepthOfField
2)XNA Shader編程教程20 – 景深
http://shiba.hpe.sh.cn/jiaoyanzu/WULI/showArticle.aspx?articleId=694&classId=4
3)RenderMonkey自帶的example Examples\Dx9\ Depth of Field.rfx