返回介绍

视野深度(DepthofField)

发布于 2021-06-20 00:15:02 字数 4196 浏览 1480 评论 0 收藏 0

视野深度 (Depth of Field) 是一种常见后期处理效果,可模拟相机镜头的属性。此版本是旧视野深度 (Depth of Field) 3.4 效果的更加先进且复杂的版本,尤其适用于HDR 渲染和兼容 DirectX 11 的图形设备。

在实际中,相机只能对特定距离的对象清晰对焦;距离相机较近或较远的对象会有一点失焦。模糊不仅提供 有关对象距离的视觉提示,而且引入了散景 (Bokeh),该术语表示因为图像明亮区域失焦而在这些区域周围出现的令人愉悦的视觉假象。常见散景 (Bokeh) 形状是碟形、六边形和较高级别二面体群 (dihedral group) 的其他形状。

虽然普通版本仅支持碟形(通过圆形纹理采样生成),但是 DirectX 11 版本能够泼溅散景纹理 (Bokeh Texture) 定义的任何形状。

视野深度 (Depth of Field) 效果的示例如下图所示,其中显示对焦前景和散焦背景的效果。


此效果的 DirectX11 版本可以采用非常合理的成本创建精细定义的散景形状。

与其他图像效果一样,此效果仅适用于 Unity 专业版,并且必须先安装 Pro Standard Assets 然后才能使用。

属性

属性:功能:
对焦设置 (Focal Settings)
显示 (Visualize)叠加颜色,用于表示相机对焦。
对焦距离 (Focal distance)世界坐标空间中从相机位置到对焦平面的距离。
对焦大小 (Focal Size)增大总对焦区域。
变换时对焦 (Focus on Transform)使用场景中的目标对象确定对焦距离。
光圈 (Aperture)相机光圈,定义对焦与散焦区域之间的转换。最好使此值尽可能高,因为否则可能会出现采样假象,尤其是在最大模糊距离 (Max Blur Distance) 较大时。较大“光圈”(Aperture) 值可自动对图像缩小采样以生成更佳散焦。
散焦类型 (Defocus Type)用于生成散焦区域的算法。DX11 实际上是散景泼溅技术,而碟形模糊 (DiscBlur) 表示更传统的(聚集时散射)基础模糊。
采样计数 (Sample Count)过滤器节拍数量。会极大影响性能。
最大模糊距离 (Max Blur Distance)过滤器节拍的最大距离。影响纹理缓存,如果值太大,则可能会导致采样不足假象。小于 4.0 的值应生成合适的效果。
高分辨率 (High Resolution)采用完整分辨率执行散焦操作。影响性能,但是可以帮助减少不需要的假象并生成更明确的散景形状。
近处模糊 (Near Blur)前景区域将以性能为代价进行重叠。
重叠大小 (Overlap Size)在需要时提高前景重叠扩大。
DX11 散景设置 (DX11 Bokeh Settings)
散景纹理 (Bokeh Texture)定义散景形状的纹理。
散景比例 (Bokeh Scale)散景纹理的大小。
散景强度 (Bokeh Intensity)散景形状的混合强度。
最小亮度 (Min Luminance)只有比此值更亮的像素才会投射前景形状。影响性能,因为它将透支 (overdraw) 限制为更合理的量。
启发式繁殖 (Spawn Heuristic)仅当相关像素通过频率检查时,才会投射散景形状。0.1 左右的阈值似乎是性能与质量之间的良好权衡。

DirectX11 与“碟形模糊”(DiscBlur) 设置之间的比较


使用高分辨率 DX11 版本可实现平滑转换(虽然性能成本较高)。
由于标准“碟形模糊”(DiscBlur) 纹理采样方案的性质,因此在采样假象出现之前,最大模糊半径受到限制。此外,只能使用球体散景形状。

关于 DirectX 11 散景泼溅

这种强大技术可实现合适散射,不过由于对填充率要求较高,因此应谨慎使用。参数启发式繁殖 (Spawn Heuristic) 和最小亮度 (Min Luminance) 控制放置散景方块 (Bokeh Sprite) 的时间。如果像素未通过亮度和频率检查,则会改用简单箱体模糊 (Box Blur)。不过这难以察觉,因为它使用与散景方块 (Bokeh Sprite) 相同的内核宽度 (kernel width)。

以下图片显示既不明亮也不会承受巨大频率变化的道路只需通过简单箱体过滤器即可进行模糊处理,而不会破坏整体散景 (Bokeh) 体验。


最大模糊距离 (Max Blur Distance) 较小的示例
最大模糊距离 (Max Blur Distance) 较大的示例

硬件支持

该效果需要带像素着色器 (3.0) 或 OpenGL ES 2.0 的显卡。 此外,还需要深度纹理支持。 PC: 自 2004 年后的 NVIDIA 卡 (GeForce 6)、自 2005 年后的 AMD 卡 (Radeon X1300)、自 2006 年后的 Intel 卡 (GMA X3000);移动: 带深度纹理支持的 OpenGL ES 2.0;控制台: Xbox 360、PS3。

将自动禁用所有不被终端用户显卡支持的图像效果。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文