首页 > 代码库 > 景深(Depth of Field)
景深(Depth of Field)
http://www.cnblogs.com/cxrs/archive/2013/03/22/DepthOfFeild.html
景深(Depth of Field)
- 什么是景深?
所谓景深,就是当焦距对准某一点时,焦平面前后图像仍然清晰的范围。景深是摄影技术中的术语。它能决定是把背景模糊化来突出拍摄对象,还是拍出清晰的背景。我们经常能够看到拍摄花、昆虫等的照片中,将背景拍得很模糊(称之为小景深)。但是在拍摄纪念照或集体照,风景等的照片一般会把背景拍摄得和拍摄对象一样清晰(称之为大景深)。
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)