找回密码
 立即注册
查看: 853|回复: 0

[学术/精华文章] 深入虚幻5引擎:Epic次世代视觉奇观探秘

[复制链接]
发表于 2020-5-27 18:41 | 显示全部楼层 |阅读模式
原文:https://www.eurogamer.net/articl ... -tech-demo-analysis

Epic在最近公布的演示里展现了虚幻5引擎运行在PlayStation 5上的实机表现,这可能是最近一年来最重要也是最具有影响力的演示,让我们得以一窥次世代游戏的大体风貌。虚幻5引擎带来了令人惊讶的细节表现,彻底摒除了LOD对模型的影响。全新的引擎拥有着激进的几何处理方式以及先进的全局光照技术,是真真正正的次世代游戏引擎。最后呈现在我们面前的结果是前所未见的,但全新渲染器的真正面目是什么样的?它们又是如何带来这次世代画面表现的,有什么缺点和制约吗?

网上对于这个技术预告片的反应很有意思,观众们提出了很多有趣的问题以及一些令人困惑的回复。尤其是主角从一个狭缝中穿过的场景让人感到十分不解,不过我们把话说明白,这很明显一个为剧情服务的决定,而不是为了有时间加载数据而故意设置的。同时,1440p的动态分辨率也让很多人不满意。我们手头上有20个没有被压缩过的预告片里面出现的素材,它们和传统的像素计算方法并不一样。当最后的成品看起来是如此出色,有着令人难以置信的细节以及稳定性(比如每一帧之间并没有抖动或者频闪),分辨率就变得没那么重要了,正如我们在本世代的增强型主机上看到的那样。我们在两年前就提到过,次世代主机不应该纠结“真4K”的概念,游戏行业已经向前迈进了,而且老实说,GPU性能应该被用在更好的地方而不是仅仅提升分辨率。

还有一些有意思的讨论,虚幻5引擎“每一个像素点都对应一个三角形”的技术以30fps的速率演示,所以很自然地,人们会好奇60fps帧率下的画面是什么样子。还有一些人想知道新引擎如何处理动态几何体以及头发或者植被的效果。内存管理也是一个热门的讨论话题,因为在虚幻5引擎的宣传里面,在游戏里直接调用原生的高精度模型是一个重点,所以这究竟是怎么做到的?这个问题又引出了另外一个更深入的话题,那就是存储带宽的需求到底有多大,在这一方面PS5有着不小的优势。所以全新的Lumen以及Nanite技术能够多大程度上调用PS5那惊人的5.5GB/s存储带宽?希望我们能够尽快了解更多内容。

Nanite是虚幻5引擎革新的核心,全新的多边形渲染器带来了技术Demo里前所未见的细节表现。这一“micro-polygon”渲染器的概念并不是什么新玩意儿,在影视CGI领域已经运用了很多年。虽然出发点相同,但是在游戏里面运行的过程与现有的渲染器不太一样。

Nanite渲染过程中所用到的模型是影视级的,每个模型拥有数百万个多边形,但这些高质量模型不会再需要为了游戏渲染而提前降低精度了。在Nanite里,高精度模型的几何细节会实时按需调整。更高的细节不需要像从前一样被提前烘焙进法线贴图里。Epic Games团队里的核心成员通过回答一些关键问题,帮助我们更好地理解了这一全新的技术。

图源:Wikipedia

“有了Nanite,我们不用再通过法线贴图来将高分辨率的模型转换成低分辨率了;我们可以直接把高分辨率的模型导入引擎内。虚幻引擎支持Virtual Texturing,这意味着我们可以在我们的模型上使用多个8K贴图,且不用担心过载GPU。”Jerome Platteaux,Epic特别项目艺术指导,对Digital Foundry说道。他提到每一个asset都有一个8K贴图作为底色,另外一个8K贴图来确定金属性/粗糙度(metalness/roughness),最后还有一个8K贴图给法线贴图。但这并不是传统意义上的法线贴图来模拟更高级别的细节,更多是为了表现模型的表面细节。

“举个例子,你们在视频里面看到的神庙内林立的武士雕像,每一个都是由八个部件组成(头,躯干,手臂,腿以及其他的)。每一个部件都有一组三个贴图(底色,金属性/粗糙度,展现物体表面小划痕的法线贴图)。所以最后我们的每一个武士雕像都有8组,一共24个8K贴图,”他补充道。

武士雕像

由于细节与屏幕内的像素点数量相关,所以不需要再对高精度的模型做处理,也没有了现有渲染系统里面的LOD。同样地,理论上也不会出现2015年的《星球大战:前线》里,地表地形出现的那种“奇怪”效果(有一说一,这个游戏今天看起来还是很漂亮)。最后,它也能够表现出水平上的延展以及装饰品的细节,这也就是说每一个在地上的石头能够以更加自然的方式提高或者降低渲染质量。总结一下,这个micropolygon渲染方式让处理模型的工作流程有了很大的改变,基本不再需要法线贴图来处理高质量的模型,这节省了时间,内存甚至渲染请求,不过这些非常庞大的模型所需要的内存开销还是一个未知数。

另一个Nanite的出色能力是对阴影的渲染效果,这对于营造一个逼真的效果至关重要。这也是《使命召唤:现代战争2019》看起来如此出色的主要原因,毕竟光线追踪生成的阴影比低分辨率法线贴图阴影强太多了。PlayStation 5上运行的虚幻5引擎利用一些讨巧的手段代替了基于triangle的硬件加速光线追踪,包括使用本世代游戏常用的基于屏幕空间(screen-space)来表现场景细节,然后结合虚拟化的阴影贴图。


“我们会对屏幕空间进行一次非常快速的取样来避免后续可能出现的阴影渲染错误,”Brian Karis解释说。“这些通常被称为‘Peter Panning’,意思是阴影出现在了相反的方向,导致有一部分阴影覆盖在了物体本身,通常是一个点或者条纹。我们通过我们的过滤手段避免了这两种情况的出现,包括前面提到的快速屏幕空间追踪取样以及其他几个小技巧。”

左侧的阴影渲染出了问题

“不过说真的,提高阴影质量最关键的还是虚拟阴影贴图(Virtual Shadow Map)。基本上就是专门针对阴影的虚拟贴图(Virtual Textures,可以点击这里了解更多)。Nanite可以让我们做很多以往我们根本不可能做到的事情,比如非常高效地为每一个像素渲染虚拟阴影贴图。我们会为每一个像素的虚拟阴影贴图选择分辨率,这些texels(纹理元素)是像素级的,所以大体上一个texel对应一个pixel,这让我们的阴影看起来无比锐利。高效率的渲染使得我们可以让Demo里面的阴影贴图分辨率达到16K,而在以前我们最多只能用2K分辨率的贴图。高分辨率非常爽,但是我们也需要真实可信的阴影,所以我们将以前的一些基于光线追踪的降噪手段进行了扩展,让明暗交接的部分十分漂亮。”

texel和pixel空间转换

Lumen是另外一个虚幻5引擎Demo里面的核心技术,这也是Epic为了挑战实时渲染领域的圣杯之一:实时动态全局光照(real-time dynamic global illumination)所给出的答案。Lumen本质上是一个非多边形光线追踪的解决方案,并且在光束撞击到物体表面后会将光线弹射出去。所以在Demo里,当阳光照射到一个物体表面,比如说石头,引擎会正确地渲染出阴影,由于光线在四处弹跳,石头的颜色也被影响了。这个Demo表现了场景实时光照的大幅度变化,在视频里甚至还有一段专门展示打开或者关闭这个功能的效果对比。


大部分游戏都通过提前计算光照贴图来模拟全局光照,通过离线渲染然后通过贴图“烘焙”到场景内部。一个场景通过这样的操作就有了全局光照效果,但是光源没有办法移动,光照的效果以及物体是完全静态的。光照效果被绑定在了游戏场景的物品表面,不仅如此,光照图贴只作用于漫反射光照效果,镜面高光,比如金属、水面或者其他闪亮物体表面的反射需要用别的方式来处理,比如立方体贴图(cube map)或者屏幕空间反射。

4A Games的《地铁:离去》提供了一个潜在的解决方案,通过硬件加速光线追踪来生成动态全局光照,但和其他用到Nvidia RT核心的解决方案已于,硬件开销实在太大了。Lumen则是一个更加轻量化的实时解决方案,通过运用追踪技术以及其他的手段相结合来完成最后的图像渲染。Lumen为阳光提供了多重间接照明(indirect lighting),在Demo里,同样的效果也在主角的闪光球中有所体现。

“Lumen使用光线追踪来解决间接照明,但并不是triangle ray tracing,”Daniel Wright解释说,Epic的图形技术指导。“Lumen通过对场景里面预置的参数进行光线追踪计算,所以并不需要特殊的光线追踪硬件支持。”

(译注:这一段不是很明白,原文如下,Lumen traces rays against a scene representation consisting of signed distance fields, voxels and height fields. As a result, it requires no special ray tracing hardware.)

为了实现真正完全动态的实时全局光照,Lumen有一个特别的层次架构。“Lumen调用了一系列的技术手段来高效地进行光线追踪计算,”Wright继续说道。“屏幕空间追踪负责处理细节,网格化的distance field处理中等规模的光线转换,最后由Voxel(体素)来处理大规模的光线。”

为了维持性能表现,团队还采用了另外一项关键的技术,temporal accumulation,这项技术可以反映光线每一帧的反射情况。举个例子,在视频Demo的开头,如果你仔细察看光线的运动情况,你会发现反射的光比起直接照射的光源,移动的时候会有一点卡顿。开发人员提到了“无限反射”的概念,本质上就是将这些反射光的反射情况做成一个循环进行播放。这可以让场景里出现很多光线反射的效果,但光线移动很快的时候就会有一丢丢延迟。

Lumen的表现让人惊叹不已,最后视频的质量代表了Lumen和Nanite实力。我们对于这个技术展示所表现出来的可信度也十分认可。虽然呈现在我们眼前的一切让人难以置信,但是当你开始一层一层的揭开新技术演示的面纱,你会更加清楚地了解Epic是如何做到这些事情的。

这家公司从一开始就对所有的技术细节持公开透明的态度,没有搞什么“in-engine”演示,直接展示的就是实机引擎表现,而且对于新引擎技术上的限制以及性能表现开诚布公。毕竟这对于一家致力于为游戏开发者们提供最好的引擎及开发工具的公司来说,是公开全新次世代游戏引擎的最好方式。

因为虚幻引擎是面向所有游戏开发者的游戏引擎,所以Epic也没有必要遮遮掩掩,毕竟最后这些功能都会开放给所有开发者。那么这些全新的技术会有何种限制?如果有的话,我们会在新引擎正式上线的时候明白限制在哪里。我们再回顾一下虚幻系列引擎的本质:这是为了让开发者们能做出任何游戏所设计的一套通用游戏引擎。全新的次世代渲染器肯定会搭配全新的易用套件帮助开发者们更好的运用新玩意儿,不然Epic就是在搬起石头砸自己的脚。尽管如此,从本世代的游戏建模流程转换到全新次世代,确实会是一个非常巨大的变动,正如我们以前提过的。

当然了,我们还是要再等六个月从能上手全新的游戏主机,同时虚幻5引擎也要等到2021年初才会正式上线。这个时间节点表示Epic还有很多工作要做,不过Brian Karis说更多关于Lumen和Nanite的细节会在近期公布,我们已经迫不及待了。

作者:奔街命编译
来源:机核
原地址:https://www.gcores.com/articles/124006

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-23 02:56 , Processed in 0.092808 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表