vtkDepthOfFieldPass代码解析

vtkDepthOfFieldPass代码解析 这份代码实现了 VTK 中的景深(Depth of Field, DOF)后处理 Pass。它继承自我们之前讨论的vtkDepthImageProcessingPass,利用场景的颜色和深度信息来模拟真实相机的光学模糊效果。以下是基于vtkDepthOfFieldPass.cxx和.h文件的详细解析:1. 核心原理景深效果通过模拟相机镜头的物理特性实现:只有在特定距离(焦平面)上的物体是清晰的,而离焦平面越远的物体越模糊。输入:场景的颜色纹理 (Pass1) 和深度纹理 (Pass1Depth)。算法:使用屏幕空间后处理 Shader。根据每个像素的深度值计算其离焦程度(Circle of Confusion, CoC),然后进行高斯模糊。优化:注释中提到 “As the filter is separable”(滤波器是可分离的),意味着它在 Shader 内部可能先做水平模糊再做垂直模糊,以减少采样次数。2. 关键成员变量FrameBufferObject: 用于离屏渲染场景的 FBO。Pass1(Color Target): 存储渲染出的场景颜色图