当前位置: 首页 > news >正文

虚幻5中Lumen提供哪些功能以及如何工作的

虚幻引擎 5 中的 Lumen 是一个完全动态的全局照明和反射系统。它可以在虚幻引擎 5 中使用,因此创作者无需自行设置。它是为下一代控制台和建筑可视化等高端可视化而设计的。那么它提供了哪些功能以及如何工作?

全局照明

当光离开光源时,它会照亮光可以到达的所有表面。这在计算机图形学中称为直接照明。在现实生活中,光并不止于此,它会从表面反射,呈现出相应的颜色,并照亮其他表面。从粗糙表面向各个方向反射的光称为漫反射间接照明或全局照明。从光滑表面镜面反射的光称为反射。最终,光线到达眼睛或相机形成图像。

过去,游戏的全局照明必须离线计算,因为计算量太大而无法实时计算。该离线过程称为光照贴图烘焙。在虚幻引擎中,光照贴图使用CPU LightmassGPU 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框架,它提供了许多强大的工具和功能&#xff0…...

nginx配置gzip

在 Nginx 中启用 Gzip 压缩可以大幅减少传输内容的大小,从而加快网页加载速度。 打开 Nginx 的配置文件,通常是 /etc/nginx/nginx.conf 或者 /etc/nginx/conf.d/default.conf。找到 http 配置块,在其中添加以下代码来开启 Gzip 压缩&#xff…...

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 开发中&#xff0c;处理 HTTP 请求和响应是不可或缺的任务。Spring Framework 提供了丰富的功能来简化这些任务&#xff0c;并使开发人员能够更专注于业务逻辑。在本文中&#xff0c;我们将深入探讨 Spring 中的 RequestBody 和 ResponseBody 注解&#xff0…...

【论文阅读】EULER:通过可扩展时间链接预测检测网络横向移动(NDSS-2022)

作者&#xff1a;乔治华盛顿大学-Isaiah J. King、H. Howie Huang 引用&#xff1a;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个原因

在某些情况下&#xff0c;Tailwind css 比 Bootstrap 更好&#xff0c;因为它是一个低级 CSS 框架&#xff0c;可让您根据需要构建自己的自定义组件。如果使用得当&#xff0c;它非常注重性能&#xff0c;可以显着减少 CSS 负载并确保更快的渲染。如果 Web 性能和自定义是您的首…...

IDEA简单拷贝一份新项目记录

IDEA简单拷贝项目记录 拷贝后改项目名&#xff0c;然后iml 配置文件改项目名&#xff0c;然后 .idea 中的compiler.xml 里面的name标签改项目名。 就可以了...

华为OD真题--字符串加密

2023华为OD统一考试&#xff08;AB卷&#xff09;题库清单-带答案&#xff08;持续更新&#xff09;or2023年华为OD真题机考题库大全-带答案&#xff08;持续更新&#xff09; "给你一串未加密的字符串str&#xff0c;通过对字符串的每一个字母进行改变来实现加密&#xf…...

UML-状态图

目录 状态图 状态图的图符 状态机 状态 ​转换 电话机状态图 活动图和状态图区别&#xff1a; 状态图 状态图(Statechart Diagram)是描述一个实体基于事件反应的动态行为&#xff0c;显示了该实体如何根据当前所处的状态对不同的事件做出反应。通常我们创建一个UML状态…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣&#xff08;LeetCode&#xff09; ​遍历字符串​&#xff1a;通过外层循环逐一检查每个字符。​遇到 ? 时处理​&#xff1a; 内层循环遍历小写字母&#xff08;a 到 z&#xff09;。对每个字母检查是否满足&#xff1a; ​与…...

篇章二 论坛系统——系统设计

目录 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 1. 数据库设计 1.1 数据库名: forum db 1.2 表的设计 1.3 编写SQL 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 通过需求分析获得概念类并结合业务实现过程中的技术需要&#x…...

JS红宝书笔记 - 3.3 变量

要定义变量&#xff0c;可以使用var操作符&#xff0c;后跟变量名 ES实现变量初始化&#xff0c;因此可以同时定义变量并设置它的值 使用var操作符定义的变量会成为包含它的函数的局部变量。 在函数内定义变量时省略var操作符&#xff0c;可以创建一个全局变量 如果需要定义…...

何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡

何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡 背景 我们以建设星云智控官网来做AI编程实践&#xff0c;很多人以为AI已经强大到不需要程序员了&#xff0c;其实不是&#xff0c;AI更加需要程序员&#xff0c;普通人…...