2.1——静态照明

对照明示例关卡"示例2.1:静态照明"的概述

Windows
MacOS
Linux

2.1——静态照明

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

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

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

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

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

光照贴图分辨率:4.0

光照贴图分辨率:16.0

由于存在_间接照明缓存样本网格_,静态照明也会影响动态对象。这是烘焙到场景中的照明样本的3D网格,渲染引擎用这个网格来确定静态照明对动态对象的影响通过在编辑器右上角的控制台栏中输入以下命令,可以在视口中将这个网格显示出来:

r.Cache.DrawLightingSamples 1

您会看到样本分散在场景中的效果,如:

IndirectLightingCache.png

为了能够存在间接照明缓存样本,场景必须有 Lightmass重要体积,并且必须已经由Lightmass构建照明。

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

此外,静态照明可以使用IES光源配置文件(稍后将在示例3.1 中讨论),但该配置文件数据将烘焙到光照贴图中,意味着其质量将依赖于光照贴图分辨率。静态照明还不支持光照功能,这一点将在示例3.2 中探讨。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback