首页 > 代码库 > 景深(Depth of Field)

景深(Depth of Field)

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

 

景深(Depth of Field)

  1.  什么是景深?

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

 技术分享

      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

景深(Depth of Field)