超逼真渲染!虚幻引擎技术大牛解读全局光照系统Lumen(1)

简介: 超逼真渲染!虚幻引擎技术大牛解读全局光照系统Lumen
【新智元导读】虚幻引擎5中,多亏有了全局光照系统Lumen才能让更多人人沉浸在虚拟世界中。对于它的研发过程,创立者Krzysztof Narkowicz对其进行了解读。


实时全局光照(Real-time GI)一直是计算机图形学的圣杯。

多年来,业界也提出多种方法来解决这个问题。

常用的方法包通过利用某些假设来约束问题域,比如静态几何,粗糙的场景表示或者追踪粗糙探针,以及在两者之间插值照明。

在虚幻引擎中,全局光照和反射系统Lumen这一技术便是由Krzysztof Narkowicz和Daniel Wright一起创立的。

目标是构建一个与前人不同的方案,能够实现统一照明,以及类似烘烤一样的照明质量。

近期,在SIGGRAPH 2022上,Krzysztof Narkowicz和团队讲述了他们构建Lumen技术之旅。

软件光线追踪——高度场


当前的硬件光线追踪缺少强大的GPU算力支持。我们不知道硬件光线追踪速度有多快,甚至不知道新一代控制台是否支持它。


因此,软件光线追踪方法运用而出。事实证明,它确实是一个非常好用的工具,可以用于缩放或支持有大量重叠实例的场景。

软件光线追踪提供了一种可能性,那便是可以使用各种各样的追踪结构,比如三角形、距离场(distance fields)、面元(surfels),或者高度场(heightfields)。

在此,Krzysztof Narkowicz放弃了研究三角形,简要研究了面元,但是对于那些需要相当高密度才能表示的几何图形,对其进行更新或追踪面元是相当昂贵的。

经过初步探索,高度场是最合适的,因其能够很好地映射到硬件中,并提供表面表示和简单的连续 LOD。

因为我们可以使用所有的POM算法,比如最小-最大四叉树,因此它的追踪速度是非常快的。

此外,多个高度场可以表示复杂几何,类似于栅格化边界卷层次结构。

若将其视为面元的加速结构也非常有趣,一个单独的texel就是一个受限于常规网格的面元。

除了高度场,Lumen还有其他属性,如反照率或照明,这样就能够计算出每次的照明。

在Lumen中,开发者将这张带有表面数据的完整贴花式投影命名为卡(Cards),即捕获位置。

栅格化的三角形

Raymarched cards光线步进卡(高度场)

对于场景中的每一张卡来说,进行光线步进太慢。因此需要一种卡的加速结构,开发者选择了一个4节点的BVH。它是为一个完整的场景构建的,每一帧都在 CPU 上,并上传到 GPU。

然后在追踪着色器中,我们将进行基于堆栈的遍历,并对节点进行动态排序,以便首先遍历最接近的节点。

BVH 调试视图


捕获位置


这里最棘手的部分是如何放置高度场,以便捕捉整个网格。Krzysztof Narkowicz称,「其中一个想法是基于GPU的全局距离场。每一帧我们都会追踪一小组主射线来寻找没有被卡覆盖的射线。

接下来,对于每一个未发现的射线,我们将使用表面梯度遍历全局距离场,以确定一个最佳的卡方向和范围,从而产生一个新的卡。

全局距离场的捕获位置


相关文章
|
人工智能 算法 安全
探索量子计算:从基础原理到未来应用
探索量子计算:从基础原理到未来应用
|
安全
教你如何10分钟搭建一个网站?
在快节奏的互联网上,做很多时间都需要快,包括网站搭建、也可以做到快速搭建,今天给大家分享一个10分钟搭建网站的过程
703 3
|
12月前
|
Kubernetes 调度 异构计算
生产环境 K8S + Deepseek 实现大模型部署 和 容器调度(图解+史上最全)
生产环境 K8S + Deepseek 实现大模型部署 和 容器调度(图解+史上最全)
生产环境 K8S + Deepseek 实现大模型部署 和 容器调度(图解+史上最全)
|
机器学习/深度学习 数据采集 人工智能
《大模型训练成本高,如何在不牺牲性能的前提下破局》
在人工智能领域,大模型训练成本高昂,主要源于硬件设备、数据处理和算法优化的需求。降低训练成本的关键在于合理配置硬件资源、改进数据处理方法、优化算法和模型结构,以及采用分布式训练技术。通过这些措施,企业可以在不影响模型性能的前提下,显著减少计算资源、人力和时间的投入,实现更高效的模型训练。实践证明,综合运用这些方法能够有效降低成本,推动人工智能技术的可持续发展。
975 18
心理健康管理系统 【毕业设计系统】
这篇文章介绍了一个心理健康管理系统的毕业设计项目,展示了系统的功能分布、登录注册界面以及不同用户角色的后台管理界面,并提供了技术栈和效果截图。
心理健康管理系统 【毕业设计系统】
|
存储 缓存 算法
【Conan 入门教程 】了解 Conan2.1 中默认生成器的作用
【Conan 入门教程 】了解 Conan2.1 中默认生成器的作用
489 1
|
移动开发 定位技术 HTML5
HTML5的新语义化标签
HTML5的新语义化标签
478 0
|
编解码 Android开发 图形学
AVProVideo☀️一、一款U3D视频播放插件介绍
AVProVideo☀️一、一款U3D视频播放插件介绍
|
开发框架 开发者 UED
Pygame的主要模块有哪些?
【6月更文挑战第11天】Pygame的主要模块有哪些?
355 5
|
Rust Ubuntu 编译器
Standard ML快餐教程(1) - 初识
如何搭建Standard ML开发环境,以及如何在sml中生存下来
3451 0