Epic已经于北京时间2021/5/26 22:00放出了UE5EA版本
那么万众期待的UE5到底给我们带来了什么?本文将简单介绍那些激动人心的新特性,以及实操效果和一些性能分析。让我们来看看UE5到底给我们的开发带来哪些改变。
一、 UE5的新特性
###### Nanite动态无限面数渲染 [Nanite虚拟几何体](https://docs.unrealengine.com/5.0/zh-CN/RenderingFeatures/Nanite/)
Nanite是虚幻引擎5全新推出的虚拟几何体系统(Virtualized Geometry System)。它采用全新的内部网格体格式和渲染技术来渲染像素级别的细节以及海量的物体对象。它足够智能,可以仅处理能够观察到的细节。Nanite采用高度压缩的数据格式,并且支持高细节流送和自动LOD。
法线贴图丰富了Mesh细节,用贴图的方式来表现凹凸效果。但是当角度变化过大,或者特殊角度上看Mesh效果会失真。置换贴图用贴图改变模型的表面,缺点是模型会有拉扯痕迹。而且制作工艺复杂,性能消耗大。只能轻微使用,不能大规模在项目中使用 。
Nanite可以让美术从烘培法线贴图和置换贴图中解脱。只要导入资源时设置编译Nanite,并且在StaticMesh设置中打开Nanite
通过这个简单的Nanite设置就可以解决大部分问题
Nanite会把图像分解为数以百万计或十亿计的可伸缩三角形。然后,该技术会只把摄像机能够看到的数据(它会通过一种非常精确的算法去除没有正对摄像机或者被其他东西遮挡的所有内容)从高速SSD直接流送到内存中去。
由于Nanite需要从磁盘快速流送网格体数据,因此建议使用固态硬盘(SSD)来存储数据。这种影响在PlayStation 5的发布会上体现得最为明显,这种游戏机的一大特点就是配备了为高速数据流送而定制的SSD。这意味着它能够从SSD访问数据,并以创记录的速度将数据直接放入内存中的特定位置。主机输入输出系统的这一进步消除了以往存在于硬盘和处理器之间的巨大延迟,这种延迟正隐约成为新的限制因素。不过在官方例子中测试看,使用机械硬盘情况下,读取的卡顿会非常明显。
Nanite目前支持PlayStation 5、Xbox Series X、以及符合以下显卡要求的PC(需要使用最新显卡驱动并支持DirectX 11/12):
-
NVIDIA: Maxwell显卡或更新版本
-
AMD: GCN显卡或更新版本
Nanite不支持移动平台。
此外Nanite还有如下限制
虽然Nanite限制很多,但是考虑到可以近乎无限制的放场景中摆放staticmesh,可以想到这种诱惑基本是没有一个设计师可以拒绝的。
Temporal Super Resolution
Temporal Super Resolution是一种取代TemporalAA的抗锯齿方案。用于因为采用Nanite产生的屏幕上的海量细节。不过考虑到 TemporalAA的消耗,可能真的只能用于高端平台了(原文是higher-end platforms)。
Lumen动态全局光照Lumen Technical Details
Lumen是虚幻引擎5全新的全动态全局光照和反射系统,专为次世代主机准备。Lumen是虚幻引擎5默认的全局光照和反射系统。它可以在拥有高细节的大型场景中渲染拥有无限反射次数的漫反射和间接高光反射,小到微米级,大到千米级,它都能游刃有余。
Lumen动态全局光照试图采用了一种复合的方式来解决游戏中的光照效果。
近景采用SSGI(Screen Space GI)只计算屏幕能看见的光照,屏幕外光线被剔除,太多遮挡会失真。有些光线效果会被丢失。
中景采用DFGI (Distance Field GI)计算一定范围内光照,如果太多遮挡,就会漏光等问题。
远景采用SVOGI (Sparse Voxel Octree GI)用块代替顶点计算光照。块一般会比较大。采用八叉树块的方式取代mesh顶点来计算光照效果,大幅度降低了运算压力,但是效果略差。
虚拟化贴图 自动计算LOD
Lumen是为下一代游戏机(PlayStation 5和Xbox Series S / X)和高端PC开发的。所以Lumen目前不支持PS4,XBox one以及移动平台,也没有计划给移动平台开发全局光照系统。
启用Lumen同样有大量的限制。Lumen全局光照取代了屏幕空间全局光照(SSGI)和距离场环境光遮蔽(DFAO)。Lumen反射取代了虚幻引擎4的屏幕空间反射。此外启用Lumen后,静态光照的贡献会被禁用,并且所有光照贴图都会被隐藏。但是同样的,它所带来的渲染效果提升也是令人心动的。
Virtual Shadow MapsVirtual Shadow Maps
虚拟阴影贴图(VSM)是一种新的阴影贴图方法,用于配合Unreal Engine 5的Nanite,Lumen,反射系统,World Partition,来表现大世界中电影级的高品质阴影效果。
Virtual Shadow Maps设计就是用来提高阴影分辨率的,所以同样是一个为高端平台设计的特性。
Sky Atmosphere System大气系统
大气系统,UE5更新了UE4中存在的大气系统。
Quixel Bride Quixel 虚幻引擎中的Quixel Bridge插件
UE5在编辑器中提供了一个用户快速访问Quixel资源库的方案,用户可以快速地Megascan资产拖入到自己的场景中去。
Mega assemblies
此特性主要帮助用户用蓝图的方式生成包含大量mesh的对象,帮助用户处理海量的staticmesh对象。
World Partition 世界分区系统
类似于UE4中的Streaming level,不过它自动的将一个world切分成若干个小单元。这些单元在编辑器中可以选择性的被加载和释放,可以解决大型团队如何分块开发地图的问题,以方便用户开发。不过最大的好处不是解决加载速度和内存占用么?
单元大小和读取半径都是可以配置的
此外看着这个界面,不觉得和UE4的World Composition很像么?当然World Partition 就是用来替代它的。UE5中World Composition将被废弃。
One File per Actor 一Actor一文件
此特性以actor为单位,而非整地图保存整个地图信息。解决用户修改中的冲突合并。
Data Layers数据层世界分区 – 数据层
数据层(Data Layers)是世界分区系统中的一个子系统,用于将Actor划分到单独的层中。通过加载和卸载数据层,你可以塑造不同的场景效果。此特性把大量资产保存在一个Layer,类似PhotoShop中的Layer。方便用户管理
Full BodyIK Solver 基于全身位置的IK
虚幻引擎5抢先体验版中提供了基于全身位置的逆向运动学(FBIK),可用于在Control Rig中创建高度可控和灵活的IK,是一个新的IK解决方案。
Game Feature Plugins
插件给予了更大的权限。
Animation Motion Warping运动扭曲
运动扭曲允许你动态调整角色的根运动,以便对齐目标位置。动画系统中可以响应外部输入了。这样游戏角色可以根据外部输入的调整更多参数。
Control RIg绑定控制Control Rig
借助Control Rig,你可以为导入的骨骼模型创建自定义控制点,然后在虚幻编辑器中为模型生成新的动画,或者修改模型现有的动画,是一个新的动画编辑功能
MetaSounds MetaSounds
虚幻引擎5推出了全新的高性能音频系统 MetaSounds,允许音效设计师完全掌控如何为音效源生成数字信号处理(DSP)图表。MetaSounds解决了Sound Cue中存在的问题,它将成为虚幻引擎的默认音频对象。
更多的学习资料可以看
或者
简单的来看,UE5更像是更新了渲染和光照的UE4引擎,Nanite和Lumen是两个很大的突破。其他的特性更像是原有功能的感受性优化和功能更新。此外,UE4就存在的Chaos(Chaos Physics)和Niagara(新粒子系统 )就不再赘述了,毕竟Chaos的Bug到现在也没全部改完。当然我觉得最最重要的是下面这句。
不过,当我打开UE5项目的Vs的时候我看到了
然后又打开了UE5引擎的bin目录
还是熟悉的配方熟悉的味道。
二、 新旧引擎效果对比
如果把UE4项目迁移到UE5之后会有如下渲染设置变化
-
屏幕空间全局光照: 屏幕空间全局光照(测试版) 的项目设置和相关控制台变量
r.SSGI.Enable
已被移除,先前的状态已丢失。 -
硬件光线追踪: UE5EA将硬件光线追踪功能分为阴影和反射,目标是更容易选择你想要启用的功能。
-
生成网格体距离场: Lumen的 软件光线追踪 功能主要依赖于 有向距离场 进行网格体展示。所有 距离场 的 默认体素密度 已从0.1增加到0.2。对于使用Lumen实现良好的软件追踪质量而言,这是必要的,但它会极大增加距离场内存的使用率。
我们来对比下MegascansGoddessTemple工程主场景在UE4和UE5下相同角度的效果。
左为UE5,右为UE4
再来一张细节
上为UE5,下为UE4
请暂时忽略右边的性能分析数据,在下一节我们再来详细分析这个数据。可以看到MegascansGoddessTemple场景的雾面片明显在UE5中效果更淡些。此外UE5对细节的效果表现得更清晰一些。如果想知道到底渲染上有什么变化,请看下一节。
三、 新旧引擎性能对比
测试机型
CPU Intel i7-8700k 3.7GHz
内存32G
GPU RTX2070Spuer
机械硬盘
MegascansGoddessTemple性能对比
首先我们还是对比下MegascansGoddessTemple项目。依然是上一节那张地图那个角度,由于MegascansGoddessTemple里面资源的问题,所以没有使用Nanite。此外,由于渲染配置也发生了变化,我们只是通过数据对比来观察达到近似效果的性能,毕竟我们想体验的是Lumen。
我们首先观察下以下性能采集的结果。
stat unit
左UE5,右为UE4,下同
可以看到UE5,GPU消耗的时间只有UE4的一半左右
Stat Engine
我们可以看到**UE5比UE4多了整整一倍的StaticMesh的三角形,但是FrameSyncTIme只有UE4的一半。**这也解释了为什么UE5相同场景看上去更清晰,能有更好的显示效果。
Stat RHI
UE5的Triangles drawn有了非常显著的减少。
Stat scenerendering
可以发现UE5的PresentTime大幅度减少了。
Stat GPU
通过对比,我们可以发现UE5各个模块虽然的消耗发生了变化,但是总体看来,并没有出现非常大改变。
profileGPU
通过对整体渲染流程的消耗采集,我们可以看到UE5的BasePassing,Lights,RayTracingSkyLight和ShadowDepths的消耗都有了很大的飞跃,极大的提升了帧率。请不要忘记,这是在UE5提升了一倍的staticmesh的三角形的情况下的效果。
具体分析下Lights
我们会发现Lights的单个light的消耗基本是没有变化的,但是UE5的通过裁剪没有计算太多的光源,导致性能有了很大提升。
再看RayTracingSkyLight
请忽略采集时两个屏幕分辨率10个像素的差别,可以看到UE5的SkyLightRayTraceing的消耗只有UE4的一半左右。GenerateSkyLightVisibilityRays也有很大的提升。
最后我们看下ShadowDepths
我们会发现UE5用新的shadowmap生成机制,大幅度减少了消耗。这应该是新的shadow机制导致的优化。
可以发现生成流程发生了变化。
最后,我们观察下渲染管线。可以看到UE5渲染管线中加了大量的Nanite相关的操作。
由于我在UE5项目中并没有使用Nanite,如果使用可能能达到更好的效果。
四、 界面变化对比
主界面对比
简单的来说,UE5采用了界面收缩操作方式,所有的子界面都会自动缩回,突出了Viewport的位置,方便用户更好的编辑。如果觉得不习惯的话也可以把全部界面锁在主界面上。
回到过去
整体的界面样式感觉更像Unity了。如果能让用户自定义皮肤也不知道有没有市场。
Staticmesh编辑界面
蓝图界面
动画蓝图界面
简单来说,UE5保留了UE4的界面布局,只不过一些界面默认收缩,如果已经能熟练使用UE4,使用UE5上手并没有什么问题。一旦接受了新的设定,并不会有什么不习惯的问题。此处就不再放这些没有营养的图片水内容了,如果有兴趣的同学可以自己去感受下。
五、 UE5例子展示(ValleyoftheAncient)
打开例子时候的灵魂拷问
由于新的level流式加载技术,会发现移动一段距离就有这个提示。不过打开场景的时间相对于UE4,真的不止是快了一星半点。
请注意这个StaticMeshTris,这么大的场景,在UE4中是不可能降低到这么低的StaticMeshTris的。新的Nanite极大的提升了渲染效率。
如果打开Nanite观察可以发现有大量的三角形存在。不过有个有意思的现象,就是因为场景中存在热浪效果,会导致mesh在屏幕上占用的像素变化,会发现Nanite一直在刷新三角形。前方高能,密恐警告。
虽然实例中对Nanite的运用比较克制,搭配也很巧妙。可以预见到Nanite可以大大的减少设计师的工作压力,拉开高级设计师和低级设计师的产出能力。在实际关卡中,虽然也能偶发的看到Nanite处理的StaticMesh出现微小的跳变,但是无疑这个技术是有革新性的。
当然,最震撼的还是这个魔像。然后仔细一看
依然是熟悉的配方。
最后此项目只支持Windows平台,所以不能在其他平台测试。不过想想也是,运用了Nanite和Lumen本身也没有几个平台支持啊。
六、 迁移问题
理论上来说,所有的UE4项目只要用UE5编辑器打开就会自动更新到UE5,就像用一个新版本的UE4打开一样。
但是由于光照的默认配置的变化,渲染效果可能会发生变化。Nanite需要重新设置资源,如果没有重新设置的staticmesh是不能使用的。Cascade将被废弃,不过目前尚还能使用,但以后必然会被废弃。此外PhysX也将被Chaos取代。所以新旧工具之间切换需要特别注意。
其他具体内容请参看Unreal Engine 5的重大变更和迁移指南。
此外由于移动平台不支持Nanite和Lumen,移动平台项目的升级可能并不会有什么有益的变化。
七、 后记
目前看UE5的EA版本还有很多UE4的残留,甚至像一个UE4的大版本更新。而且按照知乎上的官方说法,如果框架不类似,怎么给UE4升级呢?不过Nanite和Lumen对开发效果的提升是显而易见的,很明显的对于开发3A的团队来说这些都是很有价值的。不过对于移动端应用开发来说,这些特性都是不支持的。对于开发这些应用的同学来说可能没什么吸引力。也许几个版本的更新后会对移动端做更多的支持。