Unreal4Lightmass全局光照讲解0036bate1

Unreal4Lightmass全局光照讲解0036bate1,第1张

全局光照(Lightmass) 创建具有复杂光交互作用的光照图,例如区域阴影和漫反射。它用于预计算具有固定和静止运动性的光源的照明贡献部分。

编辑器和全局光照之间的通信由 Swarm Agent 处理,它管理本地的照明构建,也可以将照明构建分发到远程机器。默认情况下以最小化方式打开的Swarm Agent还会跟踪照明构建进度,并让你了解哪些机器为你工作,它们在做什么,以及每个机器使用了多少线程。

漫反射

漫反射(Diffuse Interreflection) 是目前为止视觉上最重要的全局照明效果。在默认情况下,光源以全局光照反射,而材质的基本颜色(BaseColor)项控制有多少光(和什么颜色)向各个方向反射。这种效果有时被称为渗色。漫反射是入射光在各个方向上均匀反射,即不受观测方向或位置的影响。

这里是一个由全局光照创建的场景,只有一个方向的光,且仅显示直接照明。光源无法直接照射的区域是黑色的。这是没有全局照明的结果。

然后间接照明缓存使用这些照明样本内插可移动对象的间接照明。间接照明影响光源环境阴影的颜色,而不是方向。使用显示(Show)->可视化(Visualize)->体积照明样本(Volume Lighting Samples)在你的视口中预览它们。

限制

全局光照会自动计算出详细的间接阴影,但是为了艺术目的夸大间接阴影或者增强场景的接近感是很有用的。

环境遮挡(Ambient occlusion) 是你从一个均匀明亮的上半球得到的间接阴影,就像阴天。全局光照支持计算环境遮挡,将其应用于直接和间接照明,然后将其烘焙成光照图。默认情况下,环境遮挡是启用的,可以通过取消选中世界场景设置(World Settings)下的全局光照(Lightmass)的全局光照设置(Lightmass Settings)中的 使用环境遮挡(Use Ambient Occlusion) 复选框来禁用。

环境法线天空遮挡

当启用具有固定移动性的天空光照(Sky Light) 具有固定移动能力时,全局光照以环境法线的形式产生定向遮挡。

全局光照计算固定光源(Stationary Lights) 的距离场阴影贴图。距离场阴影贴图即使在较低的分辨率下也能很好地保持其曲线形状;然而,它们不支持区域阴影或半透明阴影。

区域光源和阴影

采用全局光照时,所有具有静态移动性的光源在默认情况下都是区域光源。点光源和聚光灯光源使用的形状是一个球体,其半径是由全局光照设置(Lightmass Settings)下的光源半径(Light Source Radius)设置的。定向光源使用一个圆盘,位于场景的边缘。光源的大小是控制阴影柔度的两个因素之一,因为较大的光源会产生较柔和的阴影。另一个因素是从接收位置到阴影投射物的距离。随着距离的增加,阴影变得柔和,就像在现实生活中一样。

光在通过应用到静态阴影投射网格体的半透明材质之后,将失去一些能量,导致半透明的阴影。

穿过材质的光称为透射光,每个颜色通道的透射光量在0到1之间。值为0表示完全不透明,1意味着入射光可以不受影响的穿过。由于透射光没有材质输入,所以目前是由以下其他材质输入得出的:

这意味着在不透明度为0时,该材质不会过滤掉入射光,也不会有半透明的阴影。在不透明度为1时,入射光将被材质的自发光或基本颜色(取决于是否被点亮)过滤。请注意,间接照明有时会洗掉半透明的阴影,使它们比半透明材料的自发光或漫反射更不饱和。

有几个因素控制半透明阴影清晰度。

渲染期间,光照像素颜色被确定为基本颜色 * 照明,所以基本颜色直接影响光照的可见度。高对比度或暗漫反射纹理使光照很难被注意到,而低对比度中距离漫反射纹理让光照的细节表现出来。

全局照明(也称为间接光照和间接照明)模拟与几何体和材质表面的照明交互,以向场景和项目中添加逼真的照明。该模拟还考虑了与之相互作用的材料的吸收和反射率。

可通过以下两种方式之一来模拟光在3D世界中的行为方式:使用支持光运动的和动态光交互的实时照明方法,或使用预先计算(或烘焙)的照明信息(存储在应用于几何体的纹理中)表面。虚幻引擎提供了这两种照明场景的方式,并且它们并不是彼此唯一的,因为它们可以彼此无缝融合。

虚幻引擎中的灯光烘焙系统提供了两种使用Lightmass计算灯光数据的方式:在CPU或GPU上。预计算的照明用于获得不受实时限制影响的高质量结果。但是,由于照明是生成的并存储在应用于几何体的纹理中,因此无法动态更改。

在下面探索可用的预先计算的照明工作流程。

全局光照(Lightmass) 创建具有复杂光交互作用的光照图,例如区域阴影和漫反射。它用于预计算具有固定和静止运动性的光源的照明贡献部分。

用于动态对象全局光照和未构建场景预览的缓存间接光照样本。

[ Lightmass ]可以在静态对象上生成间接光照的光照贴图,但角色之类的动态对象同样需要一种接收间接光照的方法。这能通过 间接光照缓存(Indirect Lighting Cache) 来解决,其在光照构建时用Lightmass生成的样本来计算动态对象在运行时的间接光照。

从高层次的观点来看:

Lightmass在关卡中放置光照样本,并在光照构建中计算其间接光照。

当涉及到动态对象的渲染时间时,间接光照缓存 将确认此对象是否已拥有可用光照;如有,则进行使用。

如无光照可用(对象为全新、或移动量过大),间接光照缓存 将从预计算光照样本内插光照。

此工作流的目的是尽量减少内容设置。但有时这种放置启发法会使漂浮在空中的区域缺少细节(例如玩家乘坐的升降电梯或飞行物)。可将 LightmassCharacterIndirectDetailVolumes 放置在这些区域的周围来获取更多细节。

运行时,间接光照缓存 将把光照样本内插到每个可移动对象周围的位置。可移动对象即是"移动性"设为"可移动"的所有组件。

对象移动距离足以触发内插时才会进行内插,因此缓存会进行命名。注意:这些位置离对象的边界很远。以便对象在场景中移动时形成连续而稳定的光照。多数对象实际将获得3x3x3的插值分辨率。体积光照样本保存定向间接光照(其使法线贴图能正常工作)。

间接光照缓存还能预览未构建光照的对象。它在较小的物体上效果极佳,但在较大的网格体上效果不佳(如建筑或地面)。移动已构建光照的静态网格体时,其将自动切换至间接光照缓存,直至下次光照构建。

用于动态对象及预览未构建场景的全局光照的体积光照样本。

Lightmass会生成[表面光照贴图],用于表现静态对象上的间接光照。但是,动态的对象(例如角色)也需要一种接受间接光照的方法。这种方法就是在构建时将所有点的预计算光照存储在名为 体积光照贴图 的空间中,然后在运行时用于动态Object的间接光照的插值。

概括起来,体积光照贴图是按下列方式工作的:

Lightmass将光照样本放置在关卡中的各个位置,并在光照构建期间为它们计算间接光照。

当需要渲染动态Object时,就将体积光照贴图内插到着色的每个像素,提供预计算的间接光照。

如果没有构建的光照可用(也就是说Object是新的或者移动过多),就从 静态 Object的体积光照贴图将光照内插到每个像素,直至光照重构完成为止。

单击 显示(Show) >可视化(Visualize) >体积光照贴图(Volumetric Lightmap),使用 体积光照贴图 的视图模式在关卡视口中将光照样本可视化。

体积光照贴图使每个雾体素都有预计算光照内插到其在空间中的位置,从而支持了体积雾的静态光照应用。

在考虑体积光照贴图的性能和内存使用时,应该考虑下列因素。

第三人称视角角色上的体积光照贴图在PlayStation 4上会耗用0.02毫秒的GPU 时间。所有间接光照缓存渲染线程成本均已剔除。

如果你在大型关卡中降低 体积光照贴图细节单元格大小(Volumetric Lightmap Detail Cell Size) 来获得更高的精度,则还需要增大 体积光照贴图最大砖块内存量(Volumetric Lightmap Maximum Brick Memory Mb)。否则,细节单元格将会被剔除,导致动态Object间接光照精度下降。

关卡流送要求所有关卡(包括固定关卡和所有子关卡)都在同一时间构建,否则流送进来的关卡将无法正确注册。流送关卡主要是一种内存优化手段,细节最丰富的砖块体积会合并成一个尺寸更大的立方体体积(长宽高一样长、),而非盒型体积(长宽高不同)。细节最丰富的砖块会和距离最近的子关卡一起流送,而更高级别的关卡总是固定的。在那些包含实际几何体的关卡中,大部分数据都会进入那些细节最丰富的关卡砖块。假如关卡填满了几何体,那么体积中看起来是空的(或者"浪费的")空间就不应受到太多关注。当前系统使用单张体积纹理,这意味着我们对空的空间没有太多办法,因为我们不支持使用多张体积纹理,无法使用重叠和混合功能。

为了增加样本数量已经降低了 细节单元格大小(Detail Cell Size),但是在静态几何体附近的样本密度低于所请求的密度。

如果 砖块最大内存(Maximum Brick Memory) 过低,或者区域中的所有光照都几乎相等,细节砖块可能被剔除。

光线透过墙壁漏到角色身上,但没有漏到附近的静态网格体上。

当前解决漏光的唯一办法是降低 细节单元格大小(Detail Cell Size)(允许使用更多内存)或增加墙壁厚度。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/11336377.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存