2.1 - 静态光源

光照示例关卡概述,示例2.1:静态光源

Windows
MacOS
Linux

2.1 - 静态光源

静态光源(Static Lights) 是在运行时完全无法更改或移动的光源。这些光源仅在光照贴图中计算,一旦处理完,对性能没有进一步影响。可移动对象不能与静态光源集成,因此静态光源的用途是有限的。

在三种光源可移动性中,静态光源的质量中等、可变性最低、性能成本最低。

由于静态光源仅使用光照贴图,它们需要在游戏前进行阴影烘焙。这意味着,它们不能让移动(动态)对象产生阴影,正如示例所示。但是,如果要光照的对象也是静态的,就能够产生面积(接触)阴影。我们可以通过调整 源半径(Source Radius) 属性实现该效果。但应当注意的是,为了让阴影呈现较好的效果,我们需要为获得柔和阴影的表面设置相应的光照贴图分辨率。

在静态网格体组件上,光照贴图分辨率可以在静态网格体资产中设置,也可以通过勾选 覆盖光照贴图分辨率(Override Lightmap Res) 复选框并设置分辨率的值。该值越大,分辨率就越高,但构建时间也会延长,同时占用更多内存。

在笔刷表面(Brush Surface),光照贴图分辨率通过 光照贴图分辨率(Lightmap Resolution) 属性设置。该设置实际上指的是密度的设置,因此值越低,分辨率越高。

光照贴图分辨率:4.0

光照贴图分辨率:16.0

由于存在 间接光照缓存样本网格(Indirect Lighting Cache Sample Grid) ,静态光源也会影响动态对象。这是光照示例的3D网格,且已经烘焙至场景中,渲染引擎用这个网格来确定静态光源对动态对象的影响。如果想要在视口中显示这个网格,你可以在编辑器右上角的控制栏中输入以下命令:

r.Cache.DrawLightingSamples 1

在下图中,你可以看到示例地图分散在场景中的效果:

IndirectLightingCache.png

为了能够运行间接光照缓存示例,场景必须有 Lightmass重要体积,并且光照必须由Lightmass构建完成。

由于动态对象利用该间接光照缓存,它们无从得知光源的实际位置,因此在该示例中的动态对象上缺少阴影。

此外,静态光源可以使用IES光源描述文件(稍后将在示例3.1中介绍),但该文件的数据将会烘焙到光照贴图中,因此它的质量将由光照贴图分辨率决定。静态光源还不支持光照功能,这一点将在示例3.2中详细说明。

欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消