虚幻5中Lumen提供哪些功能以及如何工作的
虚幻引擎 5 中的 Lumen 是一个完全动态的全局照明和反射系统。它可以在虚幻引擎 5 中使用,因此创作者无需自行设置。它是为下一代控制台和建筑可视化等高端可视化而设计的。那么它提供了哪些功能以及如何工作?
全局照明
当光离开光源时,它会照亮光可以到达的所有表面。这在计算机图形学中称为直接照明。在现实生活中,光并不止于此,它会从表面反射,呈现出相应的颜色,并照亮其他表面。从粗糙表面向各个方向反射的光称为漫反射间接照明或全局照明。从光滑表面镜面反射的光称为反射。最终,光线到达眼睛或相机形成图像。
过去,游戏的全局照明必须离线计算,因为计算量太大而无法实时计算。该离线过程称为光照贴图烘焙。在虚幻引擎中,光照贴图使用CPU Lightmass或GPU Lightmass进行烘焙。静态光照贴图提供高质量的光照,但需要较长的构建时间。它们限制了游戏环境。改变间接照明(例如移动壁挂式电视)会导致照明不正确,如下两张图所示:

传统上,具有动态场景的游戏依赖于基于辐照度探头的照明和环境光遮挡等技术来近似全局照明。高质量的实时全局照明一直难以实现。
Lumen 实时模拟场景周围的光线反射,通过自动更新间接照明来改变游戏世界。这意味着玩家可以破坏部分关卡、更改一天中的时间或淹没部分关卡,并且照明将相应地发生实际变化。不会再有“照明需要重建”的消息。游戏开发者在虚幻编辑器中进行更改时不再需要重建光照 - Lumen 可以实时处理它。
Lumen 提供高质量的实时全局照明,包括渗色和间接阴影等效果。Lumen 支持无限数量的漫反射光反射,这对于具有明亮表面的场景(例如下面场景中的白色疼痛)非常重要。

Lumen不仅可以解决全局照明问题,还可以处理天空阴影问题。天空阴影导致室内环境比室外环境显得更暗。

Lumen 还可以准确地传播来自灯和窗户等发光材料的光,而无需任何额外的性能成本。然而,在出现噪声伪影之前,发射区域的小度和亮度是有限的。从发射材料传播光本质上比从手动放置的光源传播光更困难。

Lumen 还可以解决半透明材质和体积雾的全局照明,但质量较低。在下面的示例中,发射标志网格动态地照亮体积雾。

反射
Lumen 可以动态计算任何粗糙度水平的表面的反射。这取代了对预先计算的反射技术(例如反射捕获、平面反射和屏幕空间反射)的需求。

Lumen 仅仅解决从相机直接可见的动态全局照明是不够的;Lumen 还提供动态 GI 和在反射中看到的阴影天光。这可以实现更真实、更准确的反射。
Lumen反射可以准确地模拟涂层材料,例如汽车油漆,其外涂层具有镜面反射,同时内层也具有更光滑的反射。这使得涂层材料的反射更加真实。
Lumen 中的光线追踪
Lumen 利用光线追踪来计算照明效果。它使用场景的近似版本来实现更快的光线交叉。可以通过切换到流明场景视图模式来查看该场景。此视图显示当 Lumen 跟踪光线以计算全局照明和反射时,场景在 Lumen 中的显示方式。

默认情况下,Lumen 使用网格距离场,这是一种软件光线追踪技术。这是因为它不需要支持硬件光线追踪的显卡。距离场以允许光线快速相交的方式表示网格表面。
Lumen 中的软件光线追踪还使用全局距离场,将所有网格合并到一个距离场中。即使有许多重叠的网格,这也能提供非常快速的光线交叉——这是使用大量详细的 Megascans 资源时的常见情况。Epic在 Nanite 之地和远古之谷技术演示中仅使用全局距离场演示了 Lumen,因为这些场景中存在大量网格重叠。
表面缓存视图
当光线照射到表面时,Lumen 必须评估材料和入射光,这是昂贵且低效的。多条光线可能会击中同一点,并且材质可能有许多纹理查找。为了优化这一点,Lumen 将表面信息缓存在其默认启用的Surface Cache中。
表面缓存通过选择捕捉每个网格的方向来填充,以便覆盖所有表面。当玩家移动时,Lumen 会将附近的网格重新捕获到表面缓存图集中。纳米几何系统有助于加速这些渲染,尽管 Lumen 不需要它。然后,表面被照亮,包括多重反射全局照明和天空照明,这将在反射中看到。然后,表面缓存照明就可以加速全局照明和反射等功能。

Surface Cache 是 Lumen 中的一项关键优化,但也对内容有影响。只能支持具有简单外部的网格 - 墙壁、地板和天花板应该是单独的网格。将带有家具的整个房间作为单个网格导入预计不会与 Lumen 配合良好。Lumen 需要单独的网格来有效地缓存表面信息。
Surface Cache View 中的粉色区域缺乏全局照明覆盖。它们在反射中会显示为黑色,并导致与视图相关的照明错误,因为只有流明屏幕迹线在那里处于活动状态。
最终聚集和去噪
光线追踪是一项要求很高的操作,因此我们无法追踪很多光线。同时,屏幕上的每个像素都需要全局照明,其中考虑来自每个表面的光。我们无法追踪所有方向的光线,因此我们必须追踪一小部分。如果我们错过了重要的光线方向,它将显示为噪声,因此我们必须策略性地确定跟踪哪些方向并尽可能地重复使用跟踪。
Lumen 使用基于辐射缓存的高级最终聚集算法来实现漫反射全局照明。Lumen 的最终聚集使用屏幕空间辐射率缓存来大大减少主屏幕的全局照明计算。缩小尺寸的间接照明与全分辨率材质数据集成,以创建全分辨率着色。

入射光在辐射缓存内进行过滤,这大大减少了噪声并重复利用了附近像素之间的少量光线轨迹。这与普通的屏幕空间降噪器不同,因为我们仍在下采样的辐射缓存空间中工作,这要高效得多。
Lumen 仔细地确定追踪光线的方向。它检查前一帧中具有明亮照明的方向,这种技术称为传入照明的重要性采样。前一帧的光照用于引导当前帧中的光线追踪位置,从而获得与追踪四倍光线相同的质量,同时运行速度更快。在下面的场景中,使用重要性采样选择白色光线。
最后,Lumen 将附近的照明与远处的照明分开,并为远处的照明追踪更多的光线,以通过一种称为世界空间辐射缓存的技术来减少噪音。当仅通过通过小窗户射入的天空光来照亮室内房间时,这一点尤其有价值,并且对于室内环境中的 Lumen 质量至关重要。

对于粗糙表面上的反射,Lumen 重复使用屏幕空间辐射缓存,无需额外费用。这使得 Lumen 能够在汽车油漆等光泽涂层材料上提供第二层反射,而无需执行两次单独的计算,这会使成本加倍。
所有这些采样和降噪技术对于 Lumen 的高质量和高效率至关重要。虽然 Lumen 不是为直接照明而创建的,但由于最终聚集的保真度,有时可以使用发射几何体完全照亮场景。在《黑客帝国:觉醒:虚幻引擎 5体验》中,实验性夜间模式仅利用流明全局照明和反射来传播来自数百万个发射窗网格的光线;艺术家没有添加任何光源。

性能和质量
Lumen 主要依靠虚幻引擎 5 的时间超分辨率算法进行时间上采样来实现 4K 输出。与以明显较低的质量设置在 4K 下本地运行 Lumen 相比,这可提供最佳的最终图像质量。
当引擎使用全局照明和反射的高可扩展级别时,流明可以在下一代控制台上达到 60 FPS,尽管这些设置的质量仍需要改进。
在其他方面,Lumen 可以通过以下方式提高质量:
- 提高后处理体积设置中的最终聚集质量利用硬件光线追踪当光线照射到表面时利用命中照明来获得更高的质量,而不是表面缓存
随着设置的增加,Lumen 可以为高端建筑可视化提供高质量的实时全局照明和反射。

这就是关于虚幻引擎 5 中 Lumen 的全部内容。希望您喜欢这篇文章并掌握其功能和内部工作原理。
想要高效运行虚幻引擎5,可以试试赞奇云工作站
但是如果想要体验一下Lumen的强大,那么本地电脑算力要求可不低哦,在实际运行ue会遇到电脑硬件配置不足带不动软件,前期硬件投入过大,还会遇到项目文件资产过大,项目耗时久,本地资源无法释放的情况等,建议可以试试赞奇云工作站,云端制作快人一步。
赞奇云工作站可以为UNREAL 用户提供云端制作输出方案,提高工作效率。用户在全国各地通过云工作站直接连接服务器,共享一套资产, 可以直接在云工作站上制作 / 修改工程文件,减少数据传输成本。
相关文章:
虚幻5中Lumen提供哪些功能以及如何工作的
虚幻引擎 5 中的 Lumen 是一个完全动态的全局照明和反射系统。它可以在虚幻引擎 5 中使用,因此创作者无需自行设置。它是为下一代控制台和建筑可视化等高端可视化而设计的。那么它提供了哪些功能以及如何工作? 全局照明 当光离开光源时,它会…...
Linux C 语言 mosquitto 方式 MQTT 发布消息
1 说明 采用 mosquitto 库,实现对主题发布消息。 其中服务器有做限制,需要对应的 cilent id ,cafile 、certfile 、keyfile 等配置 2 开发环境 采用ubuntu 直接编译调试 安装mosquitto 库 sudo apt install libmosquitto-dev sudo apt-ge…...
利用NtDuplicateObject进行Dump
前言 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。(本文仅用于交流学习) 这是国外老哥2020年提出的一种蛮有意思的思路。 我们先来看看大致的思路是…...
【快应用】list组件如何区分滑动的方向?
【关键词】 list组件、滑动方向、scroll 【问题背景】 有cp反馈list这个组件在使用的时候,不知道如何区分它是上滑还是下滑。 【问题分析】 list组件除了通用事件之外,还提供了scroll、scrollbottom、scrolltop、scrollend、scrolltouchup事件&#x…...
【深入了解pytorch】PyTorch扩展:如何使用PyTorch的扩展功能
【深入了解pytorch】PyTorch扩展:如何使用PyTorch的扩展功能 PyTorch扩展:展示如何使用PyTorch的扩展功能1. 自定义损失函数2. 自定义数据加载器3. 自定义优化器总结PyTorch扩展:展示如何使用PyTorch的扩展功能 PyTorch作为一个开源的深度学习框架,在研究和应用领域广受欢…...
Vue3——如何实现页面访问拦截
在现代的Web开发中,页面访问拦截是一个非常常见的需求。通过拦截页面访问,我们可以控制用户在访问特定页面之前需要满足的条件,比如登录状态、权限等。Vue是一个非常流行的JavaScript框架,它提供了许多强大的工具和功能࿰…...
nginx配置gzip
在 Nginx 中启用 Gzip 压缩可以大幅减少传输内容的大小,从而加快网页加载速度。 打开 Nginx 的配置文件,通常是 /etc/nginx/nginx.conf 或者 /etc/nginx/conf.d/default.conf。找到 http 配置块,在其中添加以下代码来开启 Gzip 压缩ÿ…...
ExtJS教程_编程入门自学教程_菜鸟教程-免费教程分享
教程简介 Ext JS是一个流行的JavaScript框架,它为使用跨浏览器功能构建Web应用程序提供了丰富的UI。 Ext JS基本上用于创建桌面应用程序它支持所有现代浏览器,如IE6 ,FF,Chrome,safari 6 等。Ext JS基于MVC / MVVM架构…...
【el-upload】批量上传图片时在before-upload中添加弹窗判断时的踩坑记录
一、初始代码 1. 初始使用组件代码片段 <!-- 上传 --> <DialogUploadFile ref"uploadFile" success"refresh" />// 上传 const uploadHandle () > {if (selections.value.length ! 1) {onceMessage.warning(请选择一条数据操作)return}u…...
【Java基础】- JVM之Dump文件详解
Java基础 - JVM之Dump文件详解 文章目录 Java基础 - JVM之Dump文件详解一、什么是Dump三、为什么需要Dump分析思路 四、Dump记录哪些内容4.1 Java dump 文件的格式和内容段格式行格式 4.2 常用分类heap dump和thread dumpheap dumpthread dump 五、如何生产Dump文件5.1 获取hea…...
基于Vue+wangeditor实现富文本编辑
目录 前言分析实现具体解决的问题有具体代码实现如下效果图总结前言 一个网站需要富文本编辑器功能的原因有很多,以下是一些常见的原因: 方便用户编辑内容:富文本编辑器提供了类似于Office Word的编辑功能,使得那些不太懂HTML的用户也能够方便地编辑网站内容。提高用户体验…...
深入理解 Spring 中的 @RequestBody 和 @ResponseBody 注解及其区别
引言 在现代的 Web 开发中,处理 HTTP 请求和响应是不可或缺的任务。Spring Framework 提供了丰富的功能来简化这些任务,并使开发人员能够更专注于业务逻辑。在本文中,我们将深入探讨 Spring 中的 RequestBody 和 ResponseBody 注解࿰…...
【论文阅读】EULER:通过可扩展时间链接预测检测网络横向移动(NDSS-2022)
作者:乔治华盛顿大学-Isaiah J. King、H. Howie Huang 引用:King I J, Huang H H. Euler: Detecting Network Lateral Movement via Scalable Temporal Graph Link Prediction [C]. Proceedings 2022 Network and Distributed System Security Symposium…...
手动创建一个DOCKER镜像
1. 我们先使用C语言写一个hello-world程序 vim hello.c # include <stdio.h>int main() {print("hello docker\n"); } 2. 将hello.c文件编译成二进制文件, 需要安装工具 yum install gcc yum install glibc-static 开始编译 gcc -static hello.c -o hello 编译…...
SSM(Vue3+ElementPlus+Axios+SSM前后端分离)--搭建Vue 前端工程[一]
文章目录 SSM--搭建Vue 前端工程--项目基础界面实现功能01-搭建Vue 前端工程需求分析/图解代码实现搭建Vue 前端工程下载node.js LTS 并安装: node.js 的npm创建Vue 项目使用idea 打开ssm_vue 项目, 并配置项目启动 Vue3 项目目录结构梳理Vue3 项目结构介绍 配置Vue 服务端口El…...
Idea使用Docker插件实现maven打包自动构建镜像
Docker 开启TCP 服务 vi /lib/systemd/system/docker.service改写以下内容 ExecStart/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock重启服务 #重新加载配置文件 systemctl daemon-reload #重启服务 systemctl restart docker.service此时docker已…...
Tailwind css优于Bootstrap 7个原因
在某些情况下,Tailwind css 比 Bootstrap 更好,因为它是一个低级 CSS 框架,可让您根据需要构建自己的自定义组件。如果使用得当,它非常注重性能,可以显着减少 CSS 负载并确保更快的渲染。如果 Web 性能和自定义是您的首…...
IDEA简单拷贝一份新项目记录
IDEA简单拷贝项目记录 拷贝后改项目名,然后iml 配置文件改项目名,然后 .idea 中的compiler.xml 里面的name标签改项目名。 就可以了...
华为OD真题--字符串加密
2023华为OD统一考试(AB卷)题库清单-带答案(持续更新)or2023年华为OD真题机考题库大全-带答案(持续更新) "给你一串未加密的字符串str,通过对字符串的每一个字母进行改变来实现加密…...
UML-状态图
目录 状态图 状态图的图符 状态机 状态 转换 电话机状态图 活动图和状态图区别: 状态图 状态图(Statechart Diagram)是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应。通常我们创建一个UML状态…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...
代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...
