http://www.cnblogs.com/cxrs/archive/2013/03/22/DepthOfFeild.html

  1. 什么是景深?

所谓景深,就是当焦距对准某一点时,焦平面前后图像仍然清晰的范围。景深是摄影技术中的术语。它能决定是把背景模糊化来突出拍摄对象,还是拍出清晰的背景。我们经常能够看到拍摄花、昆虫等的照片中,将背景拍得很模糊(称之为小景深)。但是在拍摄纪念照或集体照,风景等的照片一般会把背景拍摄得和拍摄对象一样清晰(称之为大景深)。

景深(Depth of Field)-LMLPHP

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

05-11 13:43