简要归纳UE5 Lumen全局光照原理

一、Jim kajiya老爷子的渲染方程:

请添加图片描述
求全局光照就是求解渲染方程,我们将两边都有未知数的渲染方程变换成离散形式:
请添加图片描述
更形象的描述这个离散的渲染方程:
请添加图片描述
要给每个三角形着色就得先判断光线有没有和它相交,以下是求光线和三角形相交的次数的计算,5次反弹已经是天文数字,无限次反弹目前的GPU根本做不到实时:
请添加图片描述

二、工程上的实时全局光照技术:

在这里插入图片描述
他们实现各异,但本质都是逼近渲染方程:L=E+KE+K²E 但实际上的实现间接光都只有一次反弹
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
Lumen创新性的采用直接光和间接光分开求取:用距离场求得直接光,表面缓存求间接光。
在这里插入图片描述

三、Lumen的解决办法:

1.用距离场 Distance Field(SDF)判断光线和三角面相交:

在这里插入图片描述
距离场Distance Field用一个个点阵确定离它最近三角面的距离。

怎么用距离场判断光线是否和三角面相交呢?
在这里插入图片描述
离光源最近的点是3,往前步进3一定不会和任何三角面相交。
在这里插入图片描述
在这里插入图片描述
再从3判断离自己最近的三角面是1,继续往前步进1,也不会有任何三角面相交。
在这里插入图片描述
一直步进到新的点离三角形的距离小于0.01,那么说明光线和这个三角面相交了。
在这里插入图片描述
如果这个距离阈值越来越大,那么就可以判断这条光线没有和任何三角形相交,可以不用计算着色了。

距离场是提前算好的离线数据,所以三角面求交变得很快,当然如果物体移动了也要重新计算距离场:
在这里插入图片描述
但即使重新计算距离场也比传统的和所有三角面判断求交更快。

2.表面缓存(Surface Cache)

距离场(SDF)有个致命的问题就是只能判断相交,无法获取材质信息,所以无法给三角面着色。那么UE5就引入了表面缓存(Surface Cache):
在这里插入图片描述
不包含材质信息,无法计算BRDF(求光线怎么反弹)。

这里我们需要引入一个概念辐射度算法:
在这里插入图片描述
将场景离散成面元组成,那么一个面元向外辐射的能量等于其他面元辐射给它的能量之和。
在这里插入图片描述

在这里插入图片描述
面元细分的越多,间接光的反弹次数就越多,成像也就越逼真。

接下来就是怎么计算B1面元的对外辐射呢?B2 B3 B4都是未知数,那就得用Lumen中最重要的实时光照基础:复用reuse

复用reuse:即用上一帧接收的光照做为本帧的向外辐射的能量(光照)。这样就可以求得B1
在这里插入图片描述
所谓的表面缓存(Surface Cache)就是两帧画面的光照中转站:
在这里插入图片描述
在这里插入图片描述
Lumen巧妙的利用了第0帧面元的直接光是已知的特性,对面元单独求解,规避了传统辐射度算法需要联立方程组求解未知数的难度:
在这里插入图片描述
这样就可以近似实现无限次反弹的计算。

四、Lumen工程上的具体实现,会根据物体的距离采用不同的加速方案:

在这里插入图片描述
Lumen的厉害之处在于,它融合了经典的全局光照思路(光线追踪+辐射度算法),以及一系列巧妙的工程手段,解开了原本无法直接求解的渲染方程。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 您可以使用Lumen来构建API和Microservices,以及快速构建和维护您的应用程序后端。具体操作方法可以参考官方文档,可以了解更多关于如何使用Lumen的信息:https://lumen.laravel.com/docs/5.6 ### 回答2: UE5 Lumen是虚幻引擎5中全新的全局光照系统,它能够提供卓越的视觉效果和更高质量的实时光照渲染。下面我将简要介绍UE5 Lumen的一些使用方法。 首先,启用Lumen需要确保项目使用的是虚幻引擎5。在项目设置中,可以找到“Renderer Settings(渲染设置)”并将全局光照模式切换为“Lumen”。 使用Lumen之后,您可以通过调整Lumen的各种参数和属性来获得期望的光照效果。在虚幻编辑器中,可以通过在“World Settings(世界设置)”面板中找到Lumen相关的设置。可以调整光源的影响范围、默认反射率、灯光传播速度等。 此外,Lumen还通过使用Virtual Shadow Maps(虚拟阴影贴图)的方式提供了一个方便的动态阴影解决方案。这些虚拟阴影贴图将在运行时生成,可以覆盖较大范围的场景并提供更高质量的动态阴影效果。 Lumen还提供了自适应全局光照(ALGI)功能,这意味着光照会根据场景中的物体进行实时计算,以提供更真实的光照效果。在项目中启用ALGI后,可以在“World Settings”面板中的Lumen设置下找到对应选项。 最后,Lumen还支持与虚幻引擎5中的其他特性和工具的集成。例如,您可以将LumenLumen的虚拟光源、物理基础解算器和其他虚幻引擎5功能一起使用,以获得更出色的效果。 总之,UE5 Lumen是虚幻引擎5中一款非常强大和灵活的全局光照系统。通过了解和使用Lumen相关的设置和功能,开发者可以在项目中获得更真实、更高质量的光照效果。 ### 回答3: UE5 Lumen是一项用于实时光线追踪的技术,以下是关于如何使用UE5 Lumen的相关信息。 首先,要使用UE5 Lumen,您需要打开UE5编辑器并创建一个新的项目或打开现有的项目。然后,您需要确保您的项目使用的是UE5版本,因为Lumen仅在UE5中可用。 一旦项目打开,您可以通过导航到“项目设置”>“引擎”>“渲染器设置”来启用Lumen。在这里,您可以找到一些Lumen相关的选项以及不同的属性进行调整。这些属性包括光线传输的距离、光照强度、间接光照的质量等等。 在设置完Lumen的属性后,您可以在场景中开始使用Lumen。您可以在场景中添加光源,并通过调整其属性来控制光照的参数,例如光照强度、颜色等等。 Lumen将根据这些光源的位置和属性来计算场景的光照效果。 另外,您还可以使用Lumen的虚拟光源功能。虚拟光源是一种模拟真实光源的方法,允许您创建没有直接光照但会产生间接光照效果的区域。您可以在场景中将虚拟光源放置在需要间接光照的区域,并调整其属性以实现所需的效果。 值得注意的是,Lumen需要消耗较多的计算资源,因此在使用Lumen时需要权衡计算性能和图形质量。您可以在场景中选择性地启用Lumen,以确保在处理复杂场景时获得平衡的性能和效果。 总的来说,UE5 Lumen是一项强大的实时光线追踪技术,可以为UE5项目带来真实而逼真的光影效果。通过在项目设置中启用Lumen,并合理调整光源的属性,您可以在场景中使用Lumen并在渲染时体验到其带来的改进。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cxihu田树东

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值