虚幻引擎学习之路:相机图像后处理

简介:

图像后处理

渲染模块中图像后处理可用于实现各种特殊的镜头特效以及整体调节渲染的效果。它通常是在所有场景渲染结束后才执行。Unity引擎在2017版本之前的图像后处理都是采用将脚本组件添加到相机上实现。因此,每添加一个图像后处理脚本,就会多至少一次全屏幕的渲染Pass。Unity引擎在2017版本中引入了Post Processing Stack组件,该组件是一系列预定义图像后处理效果集合。它将多种图像后处理效果进行优化合并,提高了渲染效率,使开发者使用更加方便。Unreal 4引擎的图像后处理也是采用一系列预定义效果集合,开发者在使用时只需要从中勾选需要的效果即可。在接下来的内容中,本文将首先介绍Unreal 4引擎的图像后处理对象Post Process Volume的使用。然后,对其包含的一系列效果进行介绍,并与Unity引擎提供的效果做比较。最后,介绍自定义图像后处理的使用。

一、图像后处理使用

在Unreal 4引擎中,图像后处理模块是单独作为一个对象放在场景中,叫做“Post Process Volume”。创建时可以将“Modes”页面下“Post Process Volume”拖入场景即可,如下图所示:

请输入图片描述

其中,黄色的方框表示该Volume的范围,当相机处于范围中时,图像后处理才会生效。如果在Post Process Volume的设置界面中勾选了“Unbound”,则此图像后处理效果影响范围将扩大为整个世界空间,如下图所示:

请输入图片描述

同时,如果场景中出现多个Volume重叠,引擎会根据上图中的“Blend Weight”参数设置进行融合。

在Unity中Post Processing Stack的使用如同普通的脚本组件一样,只需挂接到相机上即可。然后通过新建Post Processing Profile进行参数设置,如下图所示:

请输入图片描述

目前,Unity的图像后处理有效范围是全局有效,部分区域有效的功能可通过脚本实现。但是Unity引擎提供的Post Processing Profile配置文件使参数共享变得更加便利。在不同的项目中,想要达到相同的图像后处理效果,只需共用相同的Post Processing Profile即可。

图像后处理使用Unreal 4 vs Unity小结

  • Unreal 4引擎与Unity 2017引擎的图像后处理功能都采用了统一的框架,将不同的预定义效果进行优化实现,其使用方式都很便捷。Unreal 4引擎的图像后处理支持有效区域以及混合的功能,Unity引擎提供的图像后处理配置文件能够更好地支持参数共享。

二、引擎内置效果

在Unreal 4引擎中,Post Process Volume的“Details”页面显示了不同类型图像后处理效果的设置,包括Color Grading,Tonemapper,Lens,Rendering等。在Unity引擎中,Post Process Profile的“Inspector”页面中显示了其支持的各种效果,如下图所示:

请输入图片描述

其中,大部分效果是Unreal 4引擎和Unity引擎都支持的。我们以对照的形式将其列出(Unreal 4 vs Unity):

  • Anti-Aliasing (vs) Anti-Aliasing
  • Ambient Occlusion (vs) Ambient Occlusion
  • Auto Exposure (vs) Eye Adaptation
  • Bloom (vs) Bloom
  • Color Grading (vs) Color Grading & User Lut
  • Depth of Field (vs) Depth of Field
  • Motion Blur (vs) Motion Blur
  • Image Effects (vs) Chromatic Aberration & Grain & Vignette
  • Screen Space Reflections (vs) Screen Space Reflection

接下来,我们将对Unreal 4引擎中的图像后处理效果逐一介绍。

1、Anti-Aliasing

Unreal 4引擎中Anti-Aliasing也是图像后处理的一部分,可以在“Project Settings”->“Engine”->”Rendering”中找到其设置。Unreal 4引擎目前支持了三种反走样算法,如下图所示:

请输入图片描述

其中,效果最好的是Temporal AA,目前该方法用的最多,引擎也是默认设置该方法。MSAA目前使用相对较少。相比较而言,FXAA效果比MSAA更好。Unity引擎中支持的图像后处理反走样有两种,如下图所示:

请输入图片描述

下图显示了不开启AA与开启MSAA以及FXAA的效果对比,读者可以关注建筑和栅栏棱线的反走样效果。

请输入图片描述
该图取自Nvidia的FXAA说明文档 【1】,左图为不开启AA,中图为开启MSAA,右图为FXAA

下图显示了不开AA以及开启FXAA和Temporal AA的效果,读者可关注建筑上楼层分割线的反走样效果:

请输入图片描述
请输入图片描述
请输入图片描述
上图取自Unreal 4的Temporal AA文档 【2】

2、Tone Mapper & Color Grading

在Unity引擎中Color Grading的作用是做Tone Mapping(即将HDR的渲染结果转换成LDR)以及颜色校正(即将LDR结果进行校正使得设备显示正常)。在Unreal 4引擎中默认的Tone Mapper采用了ACES(Academy Color Encoding System)标准,在Unity引擎中的Tone Mapper在内部计算时也是采用ACES标准,但是它提供了Neutral和 Filmic两种选择。其中Neutral方式采用参数化的控制,尽可能减少了在Tone Mapping过程中对色度和饱和度的影响。Filmic方式采用与ACES近似的方法,因此其对比度比Neutral更强一些。下图显示了Unreal 4和Unity引擎的Tone Mapper设置界面:

请输入图片描述

在Unreal 4引擎中,Color Grading的设置包含了白平衡以及饱和度、对比度、Gamma校正等参数。并且,针对场景中的全局和不同部分,Unreal 4引擎提供了不同的参数设置,其中包括:Global、Shadows、Midtones以及Highlights。Unity引擎则提供了全局的设置参数,如下图所示:

请输入图片描述

除了设置参数,Unreal 4和Unity引擎还提供了用纹理做颜色映射的方法,它类似一个查找表(Look Up Table)。在Unreal 引擎中,该设置是在Color Grading选项中,在Unity引擎中则是单独放在User Lut选项下,如下图所示:

请输入图片描述

下图显示了使用不同的Lut纹理的渲染结果:

请输入图片描述
上图取自Unreal 4官方网站,上排图片显示了渲染结果,下排图片显示了用做Lut的纹理。

3、Image Effects

Unreal 4引擎中的Image Effects包含了Chromatic Aberation、Vignette以及Grain的设置。分别对应Unity引擎中三种效果,如下图所示:

请输入图片描述

Chromatic Aberation是一种模拟相机镜头产生的颜色偏移效果,如下图所示:

请输入图片描述

Vignette模拟镜头边缘被遮挡导致的偏暗效果,如下图所示:

请输入图片描述

Grain是用于模拟老式相机拍出的颗粒感,如下图所示:

请输入图片描述

4、Bloom & Dirty Mask

Unreal 4和Unity引擎都支持Bloom以及Dirty Mask效果。Bloom模拟了亮度较强区域周围的泛光效果,Dirty Mask模拟了镜头被弄脏导致的效果。Unreal 4引擎的Bloom效果有两种方式“Standard”和“Convolution”。Convolution方式使得开发者能提供一张纹理自定义卷积核达到更真实的Bloom渲染效果,如下图所示:

请输入图片描述

下图显示了Bloom效果和Dirty Mask效果:

请输入图片描述
请输入图片描述
上图取自Unreal 4官方网站

5、Auto Exposure

Unreal 4和Unity引擎的图像后处理支持自动调节曝光度效果。当场景整体亮度偏暗或者偏亮时,该效果会自动调节曝光度,使得场景不至于过亮或过暗,并保持场景中的细节。其设置界面如下图所示:

请输入图片描述

下图显示了自动调节曝光的效果:

请输入图片描述
上图取自Unreal 4官方网站

6、Lens Flares

Unreal 4引擎支持镜头耀斑效果,它模拟了相机镜头在拍摄强光时产生的光斑。在其设置界面可以设置光斑的染色、大小、形状,如下图所示:

请输入图片描述

渲染效果如下图所示:

请输入图片描述
上图取自Unreal 4官方网站

7、Depth of Field

Unreal 4和Unity引擎的图像后处理都支持景深效果。Unreal 4引擎的DOF效果支持三种方式,如下图所示:

请输入图片描述

其中,BokehDOF效果最好但最耗时,GaussianDOF效率最高,CircleDOF效果和效率居中,如下图所示:

请输入图片描述
上图取自Unreal 4官方网站

8、Ambient Occlusion

Unreal 4和Unity引擎都支持Screen Space的Ambient Occlusion,其参数设置界面如下图所示:

请输入图片描述

下图显示了Unreal 4引擎中SSAO的渲染效果:

请输入图片描述
上图取自Unreal 4官方网站

9、Global Illumination

Unreal 4引擎的图像后处理支持对间接光照进行染色,以及调整强度,如下图所示:

请输入图片描述

下图显示了设置Indirect Lighting Color和Indirect Lighting Intensity的渲染效果:

请输入图片描述
请输入图片描述
请输入图片描述
上图为原始渲染结果,中图为Indirect Lighting Color设为红色的渲染结果,下图为Indirect Lighting Intensity设为2倍的渲染结果。

10、Screen Space Reflection

Unreal 4和Unity引擎都支持屏幕空间反射。Unity引擎支持两种模式,如下图所示:

请输入图片描述

其中Unity引擎支持两种不同的Blend类型:Physically Based和Additive。使用Physically Based类型时,Unity引擎会对反射表面的材质进行采样,然后计算反射结果。该方式比Additive更加耗时,但渲染结果更加真实。

下图显示了Unreal 4引擎的SSR渲染效果:

请输入图片描述
上图取自Unreal 4官方网站

11、Motion Blur

Unreal 4和Unity引擎都支持运动模糊效果,如下图所示:

请输入图片描述

下图显示Unreal 4引擎中Motion Blur的渲染效果:

请输入图片描述
上图取自Unreal 4官方网站

图像后处理效果Unreal 4 vs Unity小结

  • Unreal 4和Unity引擎支持的大部分图像后处理效果都相似,少数效果两种引擎提供的参数设置有所区别。

三、自定义效果

Unreal 4和Unity引擎都支持自定义图像后处理。在Unity引擎中,只需要将图像后处理脚本组件挂接到相机上即可。在Unreal 4引擎中可利用Post Process Material来实现。

1、Post Process Material

Post Process Material的创建与普通Material创建相同,只是在Material的参数设置中需将“Material Domain”选项设置为“Post Process”,如下图所示:

请输入图片描述

其中,图像后处理只需要用到材质的“Emissive Color”参数。在编辑时,只需将节点图与基础节点的“Emissive Color”引脚相连即可,如下图所示:

请输入图片描述

创建好Post Process Material后,即可在Post Process Volume的 “Post Process Materials”参数中使用,如下图所示:

请输入图片描述

其中,Post Process Materials参数是一个数组,可以设置多个材质进行融合。

自定义效果Unreal 4 vs Unity小结

  • 对于自定义图像后处理效果,Unity采用脚本组件的方式,Unreal 4采用材质节点图的方式,两者都比较方便。

图像后处理小结

相比较而言,Unreal 4引擎和Unity引擎2017版本的图像后处理提供的内置效果大部分相似,使用起来都比较便利,只需在设置页面进行勾选并调整相应参数即可。自定义图像后处理的编辑和使用也都比较方便。






原文出处:侑虎科技
本文作者:admin
转载请与作者联系,同时请务必标明文章原始出处和原文链接及本声明。

目录
相关文章
|
2月前
|
存储 PyTorch 算法框架/工具
一体化模型图像去雨+图像去噪+图像去模糊(图像处理-图像复原-代码+部署运行教程)
一体化模型图像去雨+图像去噪+图像去模糊(图像处理-图像复原-代码+部署运行教程)
39 1
|
数据可视化
【视觉高级篇】23 # 如何模拟光照让3D场景更逼真?(上)
【视觉高级篇】23 # 如何模拟光照让3D场景更逼真?(上)
104 0
【视觉高级篇】23 # 如何模拟光照让3D场景更逼真?(上)
|
机器学习/深度学习 数据可视化 图形学
【视觉高级篇】24 # 如何模拟光照让3D场景更逼真?(下)
【视觉高级篇】24 # 如何模拟光照让3D场景更逼真?(下)
83 0
【视觉高级篇】24 # 如何模拟光照让3D场景更逼真?(下)
|
5月前
|
编解码 人工智能 算法
社区供稿 | AIGC图像分辨率太低?快来试试像素感知扩散超分模型,你想要的细节都在这里!
本文介绍了一种全新的基于SD生成先验的图像超分辨率和修复算法,在多个任务上都有着SOTA的表现。
|
9月前
|
监控 算法 vr&ar
鱼眼矫正,实时视频与3D的融合案例分享
#鱼眼摄像头画面矫正及与3D融合 鱼眼摄像头是一种广角镜头,捕捉的视频画面呈现出弯曲或球形。通过鱼眼矫正算法,可以将鱼眼相机拍摄的视频转换为更接近于标准透视的视频,使用户能够直接获得更自然的视频效果。 经过鱼眼矫正后的实时视频,适用于与3D场景实时融合,即视频孪生 = 视频+数字孪生。 视频孪生是现阶段数字孪生的天花板。将分散、割裂的实时视频在数字孪生世界中做三维还原,虚实共生,虚实互补,为用户提供立体、直观、实时真实的动态的系统。只有通过动态的视频,才能实现真正的虚实共生。
219 0
|
传感器 Web App开发 机器学习/深度学习
计算机视觉教程0-3:为何拍照会有死亡视角?详解相机矩阵与畸变
计算机视觉教程0-3:为何拍照会有死亡视角?详解相机矩阵与畸变
381 0
计算机视觉教程0-3:为何拍照会有死亡视角?详解相机矩阵与畸变
|
机器学习/深度学习 编解码 人工智能
首篇BEV感知生成工作!BEVGen:从鸟瞰图布局生成环视街景图像
本文提出了BEVGen,这是一个条件生成式模型,它合成了一组真实且空间一致的环视图像,这些图像与交通场景的BEV布局相匹配。BEVGen结合了一种新颖的交叉视图转换和空间注意力设计,学习相机和地图视图之间的关系,以确保它们的一致性。BEVGen可以精确地渲染道路和车道线,以及在不同的天气条件和时间生成交通场景。
首篇BEV感知生成工作!BEVGen:从鸟瞰图布局生成环视街景图像
|
7月前
|
编解码 人工智能 移动开发
AIGC图像分辨率太低?快来试试像素感知扩散超分模型,你想要的细节都在这里
阿里巴巴最新自研的像素感知扩散超分模型已经开源,它把扩散模型强大的生成能力和像素级控制能力相结合,能够适应从老照片修复到AIGC图像超分的各种图像增强任务和各种图像风格,并且能够控制生成强度和增强风格。这项技术的直接应用之一是AIGC图像的后处理增强和二次生成,能够带来可观的效果提升。
Threejs实现机械臂运动,机械臂dae格式模型,模型下载
Threejs实现机械臂运动,机械臂dae格式模型,模型下载
394 0
Threejs实现机械臂运动,机械臂dae格式模型,模型下载
|
机器学习/深度学习 算法 计算机视觉
【OpenVI-视觉生产系列】老片图像上色,一键开源体验
随着摄影技术的演进,彩色照片在现在已经非常普及,但仍然有大量历史黑白照片遗留。图像上色可以对这些宝贵的旧时代遗产进行修复,令老照片重获新生。
796 0
【OpenVI-视觉生产系列】老片图像上色,一键开源体验