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

虚幻引擎5 (UE5) 初学者必看:Lumen知识点

[复制链接]
发表于 2022-8-29 11:30 | 显示全部楼层 |阅读模式
Lumen 是Unreal Engine 5的全动态全局照明和反射系统,开箱即用。它专为建筑可视化等游戏之外的下一代游戏机和高端可视化而设计。在这里,我们将介绍 Lumen 的功能并概述技术细节。


全局照明当光离开光源时,它会照亮从该光源可见的所有表面;这在计算机图形学中称为直接照明。但在现实生活中,它并没有止步于此,它会从表面反弹,并在移动过程中拾取表面的颜色。从粗糙表面向各个方向反射的光称为漫反射间接照明或全局照明。从光滑表面镜面反射的光称为反射。最终,光线到达您的眼睛或相机,并形成图像。




过去,对于大多数游戏来说,全局光照必须在称为光照贴图烘焙的离线过程中解决,因为它的计算成本太高而无法实时计算。在虚幻引擎中,光照贴图是通过CPU Lightmass或GPU 光照质量。来自光照贴图的静态光照可以提供非常高的质量,但需要很长的构建时间,并且极大地限制了游戏环境。任何以显着方式改变间接照明的动作,例如移动壁挂式电视,都会使照明处于错误状态。




需要这些动态场景的游戏一直依赖于低质量的基于辐照度探针的照明,以及诸如环境光遮蔽之类的近似值。在质量上与烘焙照明相媲美的全局照明仍然难以捉摸。


Lumen 实时模拟场景周围的光线反射,使玩家能够改变游戏世界的任何方面,间接照明自动更新。玩家可以摧毁大部分关卡,改变一天中的时间,或者淹没关卡的一部分,这些变化将自动传播到照明。游戏开发人员可以告别在虚幻编辑器中看到“需要重新构建灯光”消息。


Lumen 以高质量解决全局照明,包括渗色和间接阴影等效果。Lumen 支持无限漫反射反弹,这在具有明亮表面的场景中很重要,例如下图场景中的白色油漆。


Lumen 在解决全局照明的同时,也解决了天空阴影问题,这会导致室内环境比室外环境更暗。


Lumen还可以通过发光材料(例如下面的灯和窗户)传播照明,而无需任何额外费用。在导致噪声伪影出现之前,发射区域的小而亮是有限度的。发射性照明本质上比手动放置的光源更难解决。


Lumen还解决了半透明和体积雾的全局照明,尽管质量较低。在这里,自发光标志网格动态地照亮了体积雾。


思考Lumen 可以动态地解决任何表面、任何粗糙度的反射。这取代了反射捕获等预先计算的反射形式,以及平面反射和屏幕空间反射等有限技术。
但是,仅解决从相机直接可见的动态全局照明是不够的;Lumen 还提供在反射中看到的动态 GI 和阴影天窗。
Lumen反射支持涂层材料,例如这种车漆,其外涂层具有镜面反射,而内层具有更光泽的反射。
Lumen 中的光线追踪Lumen 使用光线追踪来解决这些照明特征,并使用场景的近似版本来实现更快的光线交叉。这个场景可以通过切换到流明场景视图模式来可视化。该视图显示了 Lumen 在追踪光线以进行全局照明和反射时“看到”的内容。
默认情况下,Lumen 使用网格距离场,这是一种称为软件光线追踪的技术,因为它不需要具有硬件支持光线追踪的显卡。距离场以一种与光线相交非常快的方式表示网格的表面。
软件光线追踪还可以将网格合并到全局距离场中,从而提供非常快速的光线交叉,即使有许多重叠的网格——通常是手动放置的Megascans的情况。Epic 的技术演示Lumen in the Land of Nanite和Valley of Ancients仅使用全球距离场追踪,因为大量的网格重叠
Lumen 还可以通过项目设置使用硬件光线追踪。硬件光线追踪更准确但更昂贵,代表的几何类型更多,包括蒙皮网格。镜面反射需要硬件光线追踪。
在The Matrix Awakens: An Unreal Engine 5 Experience技术演示中,高大的城市建筑阻挡了阳光的直射,让 Lumen 为大部分屏幕提供照明。
Lumen 在此演示中使用硬件光线追踪来实现高质量反射、蒙皮网格和巨大的视野范围。表面缓存当光线照射到表面时,Lumen 需要评估材质和入射光。在每条射线结束时这样做非常昂贵,而且效率低下;多条光线可能会射到同一个点,并且材质可能有很多纹理查找。Lumen 将此光照缓存在默认启用的Surface Cache中。
Lumen 通过选择从哪个方向捕获每个网格来开始填充 Surface Cache,这样它的所有表面都将被覆盖。随着玩家在世界中移动,Lumen 不断将附近网格的材质属性重新捕获到 Surface Cache 地图集中。Nanite 虚拟化几何系统极大地加速了这些网格渲染,尤其是在高多边形网格上,尽管 Lumen 不需要它。然后照亮这些表面,包括计算多反射全局照明和阴影天光,这将在反射中看到。Surface Cache 光照现在可用于加速全局光照和反射等功能。
Surface Cache 是 Lumen 的重点优化,但也有内容方面的考虑。特别是,只能支持具有简单内部的网格——墙壁、地板和天花板都应该是单独的网格。将包含家具的整个房间作为单个网格导入预计不适用于 Lumen。
Surface Cache View Mode 在没有覆盖的地方显示粉红色。这些区域在反射中将显示为黑色,并会导致与视图相关的全局照明,因为只有流明屏幕轨迹会处于活动状态。
最终聚集和去噪光线追踪是一项非常昂贵的操作,因此我们无法追踪很多光线。同时,屏幕上的每个像素都需要考虑接收来自场景中其他所有表面的光照;这就是为什么它被称为“全局”照明。我们不可能追踪所有方向的光线,所以我们必须选择一个小子集。如果我们错过了重要的方向,它将在最终图像中显示为噪声伪影,因此我们必须聪明地了解我们追踪光线的方向,并尽可能地重用那少量的痕迹。
对于漫反射全局照明,Lumen 使用基于辐射缓存的高级最终聚集算法,该算法已在 Siggraph 2021 上展示。
Lumen 的最终聚集使用屏幕空间辐射缓存对主屏幕的全局照明计算进行大量下采样。下采样的间接照明与全分辨率材质数据集成以产生全分辨率着色。
传入的Lumen在此辐射缓存中进行过滤,这极大地消除了噪声并重复使用相邻像素之间的宝贵轨迹。这与屏幕空间降噪器不同,因为我们仍在下采样的辐射缓存空间中操作,这更有效。
Lumen 非常谨慎地选择跟踪其光线的方向;它检查最后一帧有明亮照明的方向,这种技术称为入射光的重要性采样。前一帧的光照用于指导在这一帧中搜索光照,它提供的质量与我们追踪四倍多的光线相同,但运行速度更快。在下面的屏幕截图中,使用重要性采样选择了白色光线。
最后,Lumen 通过一种称为世界空间辐射缓存的技术,将附近的光照与远处的光照分开,并追踪更多的光线来解析远处的光照以减少噪点。当室内房间完全由进入小窗户的天空照明照亮时,这一点变得非常重要,并且是 Lumen 室内质量的关键。
对于粗糙表面上的反射,Lumen 无需额外成本即可重复使用屏幕空间辐射缓存。这也是 Lumen 能够在透明涂层材料(如汽车油漆)上提供第二层反射的原因,而成本不会增加一倍。
光滑表面上的反射会追踪额外的光线以找到反射光。这些光线发现的照明在相邻像素之间共享,并在帧之间进行时间累积以消除噪声。
所有这些采样和去噪技术一起对 Lumen 的质量和性能至关重要。流明不是为直接照明而设计的,但由于最终聚集质量,有时可以完全使用发射网格来照亮场景。在The Matrix Awakens: An Unreal Engine 5 Experience中,实验性夜间模式仅使用 Lumen 全局照明和反射来传播来自数百万个发光窗口网格的光;艺术家没有放置任何光源。
性能和质量Lumen 严重依赖于使用虚幻引擎 5 的时间超分辨率算法对 4K 输出进行时间上采样。这提供了最佳的最终图像质量,而不是在 4K 下以明显较低的质量设置运行 Lumen。
当引擎使用高可扩展级别进行全局照明和反射时,Lumen 可以在下一代游戏机上达到 60 FPS,但是这些设置的质量仍在进行中。
在另一个方向,Lumen可以通过以下方式提高质量:在后期处理音量设置中提高最终聚集质量使用硬件光线追踪当光线撞击表面时使用碰撞照明以获得更高质量而不是表面缓存随着设置的增加,Lumen 为建筑可视化提供了高质量的实时全局照明和反射。
希望您喜欢 Lumen 功能和内部工作原理的总结。Lumen 仍在开发中,我们正在努力改进它。特别是,我们正在努力在下一代游戏机上以 60fps 的预算运行时获得更好的性能和质量,并将其用例扩展到汽车、虚拟制作和电影渲染。
现实中会游戏制作会遇到电脑硬件配置不足带不动软件,前期硬件投入过大,还会遇到项目文件资产过大,游戏项目耗时久,本地资源无法释放的情况等,建议可以试试呆猫云桌面,云端制作快人一步。可以为UNREAL 用户提供云端制作输出方案,提高工作效率。用户在全国各地通过呆猫直接连接服务器,共享一套资产, 可以直接在呆猫上制作 / 修改工程文件,减少数据传输成本。

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-11-23 12:33 , Processed in 0.090715 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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