虚幻引擎中GPU Lightmass全局光照的使用步骤

news2025/1/16 14:00:31

GPU Lightmass (GPULM) 是一种光烘焙方法,它预先计算来自具有 Stationary 或 Static 移动性的灯光的复杂光交互,并将该数据存储在创建的应用于场景几何体的光照贴图纹理中。GPU Lightmass 显着减少了为复杂场景计算、构建和生成光照数据所需的时间,其速度相当于使用 Swarm 和基于 CPU 的 Lightmass 的分布式构建。此外,GPULM 提供了新的交互式工作流程,允许您更改场景,然后重新计算并即时重建光照。使用基于 Lightmass CPU 的系统无法实现此工作流程。让我们在今天的文章中了解虚幻引擎的GPU Lightmass 全局光照。

1.虚幻引擎中的GPU Lightmass全局光照

1.1 启用 GPU Lightmass

按照以下步骤在您的虚幻引擎项目中启用 GPU Lightmass:

第 1 步:从“编辑”>“插件”菜单中,打开“插件”选项卡>在“内置”>“编辑器”类别下,找到并启用GPU Lightmass

提示:启用 GPU Lightmass 后,会出现重启虚幻编辑器的提示窗口。为了节省时间,您应该在重新启动编辑器之前修改以下项目设置。

第 2 步:从“编辑”>“项目设置”菜单中,打开“项目设置”窗口。

引擎 > 渲染类别下,启用以下设置:硬件光线追踪 > 支持硬件光线追踪(注意: GPU Lightmass 不需要光线追踪阴影光线追踪天光。如果您的项目不需要它们,请禁用这些功能。)

虚拟纹理 >启用虚拟纹理支持虚拟纹理 >启用虚拟纹理光照贴图

Platforms > Windows类别下,设置Targeted RHIs > Default RHI: DirectX 12重新启动虚幻编辑器以使这些更改生效。

1.2 在虚幻引擎中设置 GPU Lightmass 全局光照的附加要求

以下是让 GPU Lightmass 在您的项目中发挥最佳效果的其他建议:

减少 GPU 超时检测和恢复崩溃

当您有一个使 GPU 承受重负载的复杂场景时,可能会发生超时延迟(或 TDR)。因此,Windows 10 会发生崩溃。这种类型的崩溃不仅会影响 Unreal Engine,还会影响您 PC 上使用 GPU 的任何其他设备。通常,您会看到如下所示的消息。

可以通过增加 GPU 超时所需的时间来避免或减少此类崩溃的发生,从而使您的 GPU 有可能在不关闭编辑器的情况下恢复。有关如何更改 Windows 10 中的超时延迟和恢复设置的信息,请参阅此处的电影渲染队列页面。

禁用实时光线追踪功能

GPU Lightmass 利用 Microsoft 的 DXR API 进行光线追踪,这需要 DirectX 12。虽然 GPU Lightmass 需要光线追踪才能运行,但它不需要任何额外的光线追踪功能,例如光线追踪阴影、环境遮挡或反射。

最好禁用所有这些功能,除非您明确希望将这些光线追踪功能与烘焙光照一起使用。如果您需要具有光线追踪功能的烘焙光照,您可以创建一个同时具有静态和动态灯光的场景。要禁用光线追踪效果,请使用下面的控制台命令。

r 。光线追踪。ForceAllRayTracingEffects 0

或者,您可以调整项目配置文件以在项目加载时禁用所有光线追踪功能。在项目的 Config 文件夹中,将以下行添加到项目的DefaultEngine.ini配置文件的[

/Script/Engine.RendererSettings]部分下:

[ /脚本/引擎。渲染器设置]

r 。光线追踪。ForceAllRayTracingEffects = 0

配置 GPU 内存

GPU Lightmass 需要足够的 GPU 内存来解决其开销。请记住,以下因素会影响使用 GPULM 烘焙复杂场景的成功。

必须有足够的 GPU 内存可用,以最低细节级别 (LOD) 网格(即最高质量的 LOD 网格)将整个场景保存在内存中。在轻构建期间,虚拟纹理系统会消耗大量内存。这在很大程度上取决于场景的复杂性和大小。必须有足够的 CPU 内存才能将所有生成的光照贴图存储在 RAM 中。GPU 可以将光照贴图换出到 CPU 的 RAM,但在整个光照烘焙完成之前它们不会保存到磁盘。DX12 比 DX11 消耗更多的 GPU 内存。如果您的 DX11 场景正在推动 GPU 内存的极限,那么由于光线追踪和虚拟纹理要求的额外开销,可能很难在不做出一些牺牲的情况下在 DX12 中使用。对于 Irradiance Cache 等可选设置,GPULM 有其自己的内存使用要求。

对于大型场景,基于 CPU 的 Lightmass 系统需要大量内存,这可能会给光照烘焙带来问题。这些类型的问题经常通过使用 Swarm 的分布式构建来缓解。当 GPULM 内存不足时,唯一的解决方案是通过减少几何或纹理细节来优化场景,或者升级到具有更多内存的 GPU。

配置 GPU 内存

使用虚拟纹理光照贴图启用虚拟纹理系统可以创建光照贴图并将其保存为虚拟纹理。这还有一个额外的好处,即允许光照构建在关卡视口中实时更新。它还允许在构建场景时进行编辑,而不必取消或等待构建完成。

GPULM 完全不需要启用虚拟纹理系统来构建光照,但需要它来实现交互式和实时编辑功能。如果您不打算在项目中使用虚拟纹理或不需要交互式预览,则可以禁用这些功能以节省编辑器中的时间。

为建筑照明启用多个 GPU

当您使用也支持光线追踪的基于 NVIDIA SLI 的 GPU 时,您可以使用多个 GPU 为您的项目计算光照。以下步骤启用多 GPU 支持。

您的 GPU 必须使用 NVLink 桥接器链接,并且必须在 NVIDIA 控制面板中启用 SLI。在[Engine Install Path]/Engine/Config文件夹中,在 Unreal Engine DefaultEngine.ini文件的[/Script/Engine.RendererSettings]部分下,通过添加r.AllowMultiGPUInEditor=1启用多个 GPU 。使用命令行-MaxGPUCount=[n] (其中n定义启动编辑器时通过 SLI 可用的 GPU 数量)。例如,-MaxGPUCount=2将在多 GPU 模式下使用两个 GPU 来计算光照。或者,您可以为 UnrealEditor.exe 创建快捷方式,并在属性设置中,将添加-MaxGPUCount=[n]设置到目标行。

编辑器启动后,您可以通过打开输出日志并搜索消息来确认您处于多 GPU 模式:LogD3D12RHI:启用具有 2 个节点的多 GPU

使用多个 GPU 时,性能可以平均减少构建完成时间。当不大量使用体积光照贴图时,发现使用两个 RTX-2080TI 的中型测试场景的构建时间平均要快 1.7 倍左右。改进的构建完成时间取决于多种因素,包括场景大小和复杂性、引擎多 GPU 支持以及使用的 GPU 数量。

多 GPU 支持的限制

GPU Lightmass 多 GPU 支持非常适合单区域建筑和虚拟生产环境。根据级别的复杂性和 GPU 上可用的 VRAM 数量,大型游戏级别可能会遇到内存和虚拟纹理限制。如果建筑和虚拟生产环境的设计和设置很复杂,它们可能会达到与游戏大小级别相同的限制。多GPU的限制如下:

尚不支持体积光照贴图的计算。具有高体积光照贴图计算的场景将看到较少的整体性能改进。每个 GPU 都会生成自己的辐照度缓存。根据内容,烘焙的图块之间可能存在细微的阴影差异。这可以通过提高辐照度缓存质量或完全禁用使用辐照度缓存来解决。纹理编码和去噪是基于 CPU 的操作,不受多 GPU 的影响。

总结

UE5和UE4趋近于影视级画面的新技术,正以肉眼可见的速度渗透到影视动画CG行业,在这样的趋势下,UE无疑会对这个行业的未来带来新的变化和要求。不过如此强悍的功能对硬件配置的要求也很高,专业级显卡的高性能PC始终是迈不开的使用门槛。

当然这也并不是无解的,现在上赞奇云工作站通过云上制作+数据资产快速同步+云上渲染三步独一无二解决方案,即可轻松解锁超高清流畅体验,减少成本投入,释放生产力,专注内容创作。

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

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

相关文章

MQTT QoS 0, 1, 2 介绍

什么是 QoS 很多时候,使用 MQTT 协议的设备都运行在网络受限的环境下,而只依靠底层的 TCP 传输协议,并不能完全保证消息的可靠到达。因此,MQTT 提供了 QoS 机制,其核心是设计了多种消息交互机制来提供不同的服务质量&…

自监督学习之掩码自动编码器(Masked Autoencoders, MAE)——音频识别方面

自监督学习之掩码自动编码器(Masked Autoencoders, MAE)——音频识别方面 1.参考文献 《Masked Autoencoders that Listen》 2.背景 Transformers和self-supervised learning(自监督学习)占据了计算机视觉(Computer Vision,CV)和自然语言处理(natural language processing, …

百度工程师带你玩转正则

作者 | 向阳 导读 在很多技术领域,都有正则的身影。但许多像我一样的人,只闻其名。因此将正则常用知识汇总,便于查阅。正则表达式(Regular Expression)是用于描述一组字符串特征的模式,用来匹配特定的字符串…

机械--UG NX2007改变零件的默认颜色

UG(现在的新版本叫NX,但一般人仍然沿用UG的叫法,下同),新建零件时,零件的默认颜色是橙色的,个人很不喜欢。 当然,实体化以后,可以改变它的颜色,选中实体以后…

傻瓜式裂变—竖屏视频超级原创,呆头鹅批量剪辑软件上万人使用

呆头鹅批量剪辑软件优势: 专业的技术开发团队,成熟的技术架构,完整的售后服务,我们为您解决所有的后顾之忧 .几乎涵盖市面上已知的所有剪辑功能.几乎涵盖市面上已知的所有剪辑功能.完成通知,运行间隔提醒&#xf…

201:vue+openlayers:加载geojson文件形成围栏,可添加、修改、删除feature,导出geojson

第201个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers中实现围栏列表与图中feature双向互动功能。 利用GeoJSON().readFeatures获得到features,通过转换在地图上形成图形,通过新增、修改、删除feature,可以更改整体的features关系。点击导出可以将修改后的…

工厂安全着装识别检测算法 python

工厂安全着装识别检测算法通过Python基于YOLOv5技术,对现场画面中的人员着装穿戴进行实时分析检测自动抓拍存档告警。Python是一种由Guido van Rossum开发的通用编程语言,它很快就变得非常流行,主要是因为它的简单性和代码可读性。它使程序员…

现在才开始学测试晚了么

相信问这样问题的朋友,对软件测岗位存在着很深的误解。实际上,相对于其他的技术岗位来讲,软件测试入门可以说是相对简单的了,因此多晚学习都来得及。其次,这个行业的就业前景广阔,像测试主管、自动化架构师…

k8s之Service

写在前面 本文接k8s之DaemonSet 。 通过Deployment我们可以实现一直有指定个数的POD在运行,而通过DaemonSet可以实现在每个Node上都有一个POD在运行,不管是这两种方式中的哪一种,都是仅仅实现了有若干个POD在运行的效果,但是还无法…

【AdaBoost算法】

AdaBoost算法的原理介绍 AdaBoost算法核心思想 AdaBoost算法 (Adaptive Boosting) 是一种有效而实用的Boosting算法, 它以一种高度自适应的方法顺序地训练弱学习器。AdaBoost根据前一次的 分类效果调整数据的权重,上一个弱学习器中错误分类样本的权重会…

【MySQL】易忘易错函数和经典例题

目录一、函数1. UNION ALL 以及 UNIONUNION ALLUNION2. group_concat二、例题:1. 列转行2. 行转列3. 查找第N高的数据,没有则返回null一、函数 1. UNION ALL 以及 UNION union:对多个结果,去重排序 union all:对多个…

AB测试——原理介绍(中心极限定理、大数定理、假设检验、两类错误)

作为AB测试的学习记录,本文主要整理总结了AB测试背后的数学原理和一些概念解释。 1、控制变量法 基于控制变量法的思想,通过对比两组样本(实验组和对照组)的表现是否有差异,从而验证“变量”的作用。 借用中学生物课…

Linux常用命令——xauth命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) xauth 显示和编辑被用于连接X服务器的认证信息 补充说明 xauth命令用于显示和编辑被用于连接X服务器的认证信息。 语法 xauth(选项)(参数)选项 -f:不使用默认的认证文件,而使用指定的…

动手深度学习-线性神经网络:softmax回归

目录1.分类问题2. 网络架构3.softmax运算4. 损失函数交叉熵损失函数参考教程:https://courses.d2l.ai/zh-v2/ 1.分类问题 从回归到多类分类:对类别进行一位有效编码——独热编码(one-hot encoding)。 独热编码是一个向量&#x…

HTTP与HTTPS的区别,HTTPS提高性能,HTTP2的新特性

目录数据传输区别安全性区别端口区别交互区别HTTPS的工作流程HTTPS的实现原理机密性完整性身份认证和不可否认HTTPS 使用流程HTTPS性能优化点HTTP2的特性向下兼容HTTP/1头部压缩二进制虚拟流、多路复用数据传输区别 http也相当于HTTP协议,是超文本传输协议的意思&a…

PyQt6快速入门-多文档界面(MDI)

多文档界面(MDI) 文章目录 多文档界面(MDI)1、子窗口创建2、主窗口创建3、运行结果多文档界面(Multi Document Interface,MDI)是一种应用程序界面管理方法。MDI应用程序一般由一个主窗口和多个子窗口组成,这些子窗口在主窗口里显示,并共享主窗口的菜单栏,工具栏。在MDI应用…

netty(1):NIO 基础之三大组件和ByteBuffer

1 三大组件 1.1 Channel & Buffer channel 有一点类似于 stream,它就是读写数据的双向通道,可以从 channel 将数据读入 buffer,也可以将 buffer 的数据写入 channel,而之前的 stream 要么是输入,要么是输出&…

C++生成.dll文件后在Python中引用(包括传递参数是double型、char*数组,接收参数也为数组)

一、问题描述 博主想要实现的C函数原型如下: double* getInfo(int flag, double xyz[], char *xodrPath)也就是需要传递参数为三个不同类型的参数,返回值为double类型的指针(数组)。 那么如何在Python中如何通过这个函数生成的…

完全兼容GM8775C方案|替代GM8775C设计|CS5518替代GM8775C DSI转双LVDS设计方案

GM8775C 型 DSI 转双通道 LVDS 发送器产品主要实现将 MIPI DSI 转单/双通道 LVDS功能。GM8775C输入端DSI符合 协议支持 MIPI D-PHY 1.00.00 和MIPI DSI 1.02.00,可实现 1 到 4通道 DSI 信号接收。最大数据率 1Gbps/通道。视频输入格式支持 16bit RGB565、18bit RGB6…

Mybatis 一对一、一对多、多对多

今天我们来复习一下 Mybatis 框架吧 总所周知,Mybatis 是一款优秀的 基于ORM 半自动 轻量化 的 持久层框架 ORM:对象关系映射,简单的说就是表结构对应实体类 半自动:可灵活配置SQL,优化代码性能 轻量化&#xff1a…