渲染概述

虚幻引擎 4 拥有全新的、DirectX 11 管线的渲染系统,包括延迟着色,全局光照,半透明光照,后处理以及使用矢量场的 GPU 粒子模拟。

延迟着色

虚幻引擎 4 中所有光照均为延迟光照(Deferred),这点与虚幻引擎 3 的前置光照(Forward)完全不同。材质将它们的属性写入 GBuffers,光照过程则读取材质每个像素的属性,并对他们执行光照处理。

光照路径

在虚幻 4 中有三条光照路径:

这几个不同的工具在质量、性能和游戏中的可变性直接具有不同的取舍。每个游戏都可以选择所需要的方法来使用。

带光照的半透明物体

半透明物体的光照和着色都是单次的,这样可以确保将其正确地与其他半透明物体混合,而如果采用多遍光照技术是无法完成的。

Lit Translucency

半透明物体可以将阴影投射于不透明的世界,以及其自身,或者其他带光照的半透明物体。

Translucent Particle Self-Shadowing Translucent Particle Self-Shadowing

点击查看带光照的半透明物体 以获得更多信息。

子表面着色

材质拥有了全新的光照模型 MLM_Subsurface,此模型是为了蜡或翡翠等看似不透明,但光照在内部会散射的材质打造。这种相对于一般的表面渲染质量稍低一些,但性能则更高效。

jade_statue.png ice_mounds.png
翡翠材质 冰材质

GPU粒子

虚幻 4 支持在 GPU 上的粒子模拟。传统 CPU 计算体系能够在一帧内完成数以千计的粒子。而在 GPU 上的模拟运算则可以让以十万计的粒子被计算并有效的渲染。

 生成速率500

 生成速率20000

矢量场

除了高效外,GPU 粒子最有趣的功能,就是矢量场。矢量场是一个能对粒子运动产生统一影响的矢量网格。矢量场被作为 Actor 放置在世界中,而且可以像其它 Actor 一样被平移,旋转和缩放。并且它们是动态的,可以在任何时候被移动。

Global Vector Field

矢量场也可以在 Cascade 内使用,这样可以将它的作用限制在相关的粒子发射器中。当粒子进入矢量场的边界时,粒子的运动会受矢量场影响。当粒子离开该边界时,矢量场对粒子的影响消失。

Local Vector Field

后期特效

虚幻引擎 4 提供多种后期特效,这样美术人员和设计人员可以对场景最终的画面效果和感觉进行整体调整。这些元素和特效的示例包括光溢出(明亮物体上的 HDR 光溢出效果)、环境遮挡以及色调映射。

环境遮挡

环境遮挡 效果是 SSAO(屏幕空间环境遮挡)的一种实现方式,并且当前仅基于深度缓冲。这意味着法线贴图细节或平滑组不会影响效果。 在启用该功能后,多边形数非常低的网格物体可能会呈现出更多的棱角。在虚幻 4 中,该功能仅被应用于场景,也就是说仅应用于 AmbientCubemap。

环境立方体贴图(Ambient Cubemaps)

环境立方体贴图 特效对整个场景的光照应用立方体贴图,此特效与材质被光照的位置无关。视角位置、材质粗糙度(用于高光效果),以及材质表面法线均被考虑。 这样就可以有高效和高质量的光照环境。

光溢出

光溢出 是真实世界中的一种光照现象,该效果可以在中度的渲染开销下,为渲染出的图像增加更多的真实感。 当我们用裸眼看非常亮的对象并且背景非常暗时,就会看到这种光溢出现象。尽管比较亮的对象也会产生其它的效果(如条纹、镜头眩光),但是这里讨论的典型的光溢出特效并不包含其他效果。 由于我们的显示器(比如 TV、TFT……)通常不支持 HDR(高动态范围),所以我际上并不能渲染非常亮的对象。 取而代之的做法是,只是模拟以下的情况发生后的效果,比如光照在视网膜表面的散射,或者光照射到薄膜(薄膜表面散射),以及相机前方(乳白色玻璃滤镜)的效果。 这类效果并不总是完全在物理学上显示正确,但却能帮助表现对象的相对亮度,或给 LDR(低动态范围 Low Dynamic Range)图片增加真实感。

Bloom Effect

光溢出 Dirt Mask

光溢出 Dirt Mask 效果铜鼓使用贴图在一些指定的屏幕区域使光溢出变得明亮。这可以用来制作战争镜头感,或制作更为夺目的 HDR 特效,或表达镜头缺陷感。

人眼适应

人眼适应,或称 自动曝光,可以会自动调整场景的曝光度,重现从明亮环境进入黑暗环境(或相反)时所经历的效果。

镜头眩光

镜头眩光 效果是基于图像技术,会在镜头转向明亮物体时自动产生镜头的眩光效果。

Lens Flare

色调映射

色调映射 使得渲染场景的颜色可以被转换或修改来得到不同的效果。这可以被用来制作诸如棕褐滤镜,或击中特效(例如红色闪光)等。

 色调映射 - 关闭

 色调映射 - 开启

Vignette 效果

Vignette 效果可以造成被渲染场景的亮度随距视角中心位置的距离增加而逐渐降低。

Vignette Effect