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

news2024/11/28 4:27:30

虚幻引擎 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 用户提供云端制作输出方案,提高工作效率。用户在全国各地通过云工作站直接连接服务器,共享一套资产, 可以直接在云工作站上制作 / 修改工程文件,减少数据传输成本。

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/858325.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

宿舍管理系统--前后端分离式项目架构流程复盘

文章目录 🐒个人主页🏅JavaEE系列专栏📖前言:【🎇前端】先创建Vue-cli项目(版本2.6.10,仅包含babel),请选择此项目并创建 【整理简化项目模板】【🎀创建路由】…

代码评审(Code Review)规范

一、目的 Code Review是一种用来确认方案设计和代码实现的质量保证机制,通过这个机制我们 可以对代码、测试过程和注释进行检查。 Code Review主要用来在软件工程过程中改进代码质量,通过Code Review可以达到 如下目的: 1) 在项目早期就能够…

Nevron Diagram for .NET Crack

Nevron Diagram for .NET Crack Nevron Diagram for.NET可帮助您快速轻松地在.NET Windows窗体和ASP.NET应用程序中集成和显示复杂的图表。这是一个完整的绘图解决方案,包含许多交互功能、形状、自动布局和令人惊叹的视觉效果,并配备了现成的控件&#x…

Java代码判断ip、端口是否可用

一、简介 使用的是java自带的Socket类进行检测端口号是否可用,两个代码,一个是检测的工具类,另一个是调用工具类传递相关的的参数; 请求的结果:(当前Ip可用,端口号不可用) 二、检…

Docker容器挖矿应急实例

01、概述 很多开源组件封装成容器镜像进行容器化部署在提高应用部署效率和管理便捷性的同时,也带来了一些安全挑战。一旦开源系统出现安全漏洞,基于资产测绘就很容易关联到开源组件,可能导致被批量利用。 在本文中,我们将分享一个…

【C++】C语言基础部分知识点总结 (指针,函数,内存,关键字,预处理等)(秋招篇)

文章目录 前言讲一下32位系统常用数据类型的字节大小(stm32f103为例)讲一些C/C中常见的库什么是易变变量?代码的转化和构建通常会经历哪几个步骤:(预处理,编译,汇编,链接&#xff09…

【U8+】使用天联高级版客户端登录用友U8,指定U8服务器地址。

【问题描述】 当使用U8客户端电脑作为天联高级版软件服务器的时候, 即:U8应用服务器和远程服务器不是同一台电脑。 每次新建天高用户后, 新的天高用户,登录天高客户端后并打开U8登录界面, 用友U8的登录窗口服务器地址即…

工程项目管理软件有哪些?工程项目管理软件排名!

工程项目管理是为了实现工程项目的有效、高效和可持续管理而进行的一系列活动。 工程项目的管理就像是驾驭一艘巨大的船只,需要一位经验丰富的船长来领导整个团队。 市面上也有很多工程项目管理的软件,那么到底哪款好用?我们又该如何通过工…

Vue3引用PWA,vite-plugin-pwa的使用及注意要点

工作业务需求,需要给H5页面增加PWA功能,主要是需要有一键添加到桌面,而不是指引用户在浏览器工具栏操作。 查找了一些资料,主要是用到 Add to Home Screen,简称 A2HS,需要主要的是此方法只有部分浏览器支持…

.netcore grpc客户端流方法详解

一、客户端流式处理概述 客户端流式处理方法在该方法没有接收消息的情况下启动。 requestStream 参数用于从客户端读取消息。 返回响应消息时,客户端流式处理调用完成。客户端可以发送多个消息流到服务端,当所有客户端消息流发送结束,调用请…

Mac 调试 ios safar

1. 打开Mac的 Safari 浏览器的“开发”菜单 运行 Safari 浏览器,然后依次选取“Safari 浏览器”>“偏好设置”,点按“高级”面板,然后勾选“在菜单栏中显示开发菜单”。 2. 开启IPhone的Safari调试模式 启用 Web 检查 功能,打…

『PostgreSQL』在 PostgreSQL中创建只读权限和读写权限的账号

📣读完这篇文章里你能收获到 理解在 PostgreSQL 数据库中创建账号的重要性以及如何进行账号管理掌握在 PostgreSQL 中创建具有只读权限和读写权限的账号的步骤和方法学会使用 SQL 命令来创建账号、为账号分配适当的权限以及控制账号对数据库的访问级别了解如何确保…

OR36 链表的回文结构 题解

题目描述:链表的回文结构_牛客题霸_牛客网 (nowcoder.com) 对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。 给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结…

QT开发环境下的一些运行框架概述

QT运行框架与MFC的不同,两者结合会学习得更快! 送给那些刚入门QT的学生们!这里是小白学程序开发,欢迎加入我们跟我一起学习,一起成长! 区别一:入口函数 首先执行的是主对话框函数中的构造函数…

Oracle database Linux自建环境备份至远端服务器自定义保留天数

环境准备 linux下安装oracle 请看 oracle12c单节点部署 系统版本: CentOS 7 软件版本: Oracle12c 备份策略与实现方法 此次备份依赖Oracle自带命令exp与linux下crontab命令(定时任务) exp Oracle中exp命令是一个用于导出数据库数据和对象的…

【Java】常用Stream API

常见 Stream 流表达式 总体结构图 一、两大类型 中间操作(Intermediate Operations) 中间操作是指在Stream上执行的操作, 它们返回一个新的Stream, 允许你链式地进行多个中间操作. 终端操作(Terminal Operations) 对Stream进行最终处理的操作, 当调用终端操作时, Stream会开始执…

老师如何制作学生分班信息查询系统?

即将迎来新学期的开始!学校和老师们将忙于为我们可爱的学生做分班准备。如果有一个强大的分班查询系统,学生们就可以提前知道自己被分到哪个班级,有哪些课程,以及班主任是谁! 别担心,我将教你如何设计一个…

前端开发常见效果

目录 css实现图像填充文字 css实现手风琴效果 css实现网站变灰色 elementUi的导航栏效果 css实现滚动吸附效果 鼠标经过&#xff0c;元素内部放大 css实现图像填充文字 效果图&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html><head><meta c…

带你彻底了解什么是API接口?

作为一名资深程序员&#xff0c;我知道很多人对API接口这个名词可能还不太了解。今天我要给大家分享一些关于API接口的知识&#xff0c;让你们彻底了解它的概念和作用。一起来看看吧&#xff01; 首先&#xff0c;我们先来解释一下API的全称─Application Programming Interfac…

FPGA应用学习-----FIFO双口ram解决时钟域+asic样机的时钟选通

60m写入异步ram&#xff0c;再用100M从ram中读出 写地址转换为格雷码后&#xff0c;打两拍和读地址判断是否空产生。相反读地址来判断是否满产生。 分割同步模块 asic时钟的门控时钟&#xff0c;fpga是不推荐采用门控时钟的&#xff0c;有很多方法移除fpga的时钟选通。 如果是a…