Language:
Page Info
Skill Level:
Engine Version:
Share
此中文页面内容对应的英文页面有后续更新,如需浏览最新文档可切换至英文页面浏览。

计算光照图 UV 坐标

如要在 UE4 中使用静态光照(全局光照),必须为模型计算一套展开的 UV 坐标。该 UV 贴图即为模型的光照图。设置优秀的光照图需要技术和艺术的结合。以下步骤将详细说明如何在 SpeedTree 中计算光照图 UV 贴图。

左图为模型光照图和密度,右图为 UE4 中贴上光照图的模型。

步骤 1:切换至 Lightmap Density 渲染模式

使用 Render 工具栏按钮,将渲染模式切换至 Lightmap Density。所示画面应与下图相似。

ue4_starting_lightmap.jpg

该展示显示光照图在模型上的分布情况,旨在高度匹配 UE4 中相同的展示模式(Show -> Lightmap density)。模型的绿色部分代表理想的密度。蓝色意味着光照图精度过低,在 UE4 中构建光照图时可能出现穿帮。红色意味着光照图精度过高,应用在现有几何体上有浪费之嫌。

光照图在左下角进行渲染。选择模型的部分,确认其在光照图中的位置。也可选择光照图中的三角形,确定它们来自模型的哪个部分。最大化利用光照图的方法是让模型较大的部分使用较大的光照图。稍后将详细讲述如何进行此操作。

模型单元在展示中具有作用。选择 Tree 生成器并编辑 Lightmap:Scale,按导入 UE4 时的相同缩放量对模型进行缩放。此默认值与导入器的默认值相同。

Window 属性 中对相关属性进行编辑,即可改变光照图在视口中的渲染尺寸。

步骤 2:选择光照图分辨率

光照图的分辨率取决于项目的要求和树的复杂程度。目的是使用尽量低的光照图分辨率,为场景中模型的放置获得足够的覆盖。

选择 Tree 生成器并编辑 Lightmap:Resolution 属性,即可对目标光照图分辨率进行设置。有可能模型过于复杂,无法与选择的分辨率匹配。出现这种情况时,输出窗口将弹出警告提示,分辨率将变为最小分辨率;将在光照图中为模型中的每个节点添加至少一个纹素,同时保持一个纹素的边界,防止渲染穿帮。

步骤 3:调整光照图

选择分辨率后,下一步需要对模型上光照图的分布方式进行调整,确保最大的密度设置在最需要的模型部分上。整体而言,最大的密度应该设置在树干、低枝和根部。这些区域对玩家常见,密度较低时容易出现明显穿帮。相对而言,树叶的密度通常较小,便于在较小的光照图中匹配模型。

结合下列工具的使用对光照图密度分布进行调整:

  • Reset - 选择 Tools -> Reset lightmap,将除树叶外的全部光照图标量设为 1.0。树叶的标量被设为 0.0,因此每片树叶将获得一个纹素,不多不少(稍后详细讨论)。

  • Material Scales - 每个材质均拥有一个名为 Unwrap scale 的属性。增加或减少该数值可改变使用此材质的每块几何体的相对尺寸(便于设置上限)。

  • Generator/Node Scales - 每个存储几何体的生成器/节点组合均拥有一个 Lightmap:Scale 属性。调整此数值即可改变所选物体在光照图中的空间尺寸。枝干上的分布曲线可在物体上调整光照图空间的分布(而无需变更实际使用的光照图区域)。该曲线用于消除这样的情况:使用相同纹理空间的情况下,随几何体的缩小,顶端附近枝干光照图的密度将自然增加。

  • Lightmap Resolution - 如在所选分辨率中无法完成操作,可能需要选择更高的分辨率(如步骤 2 中所述)。布置将会产生巨大变化,可能需要重置并重新开始。

可进入节点编辑模式将单个枝干、叶片和树叶的比例调大,针对出现问题的区域进行处理。

最佳做法:在枝干设置好之前,使树叶保持为零。然后将树叶的比例调大,使其填充所有空白空间。

算法将积极尝试将所有资源匹配到所选的分辨率中。如一个组件比例过大,其他组件无法匹配,算法将对其尺寸进行调整,以便完成匹配。出现这样的情况时,之前密度正常的区域可能突然变为不正常。调低之前编辑的比例使其重新获得正常距离,即可将此问题解决。

步骤 4:在虚幻引擎 4 中选择光照图分辨率

在 UE4 中导入模型时,默认的光照图分辨率为 64(与所有静态网格体相同)。选择网格体资源并输入您在此处使用的光照图分辨率(Details -> Static Mesh Settings -> Lightmap Resolution)。在 UE4 中构建灯光时,可以利用光照图在一些非常复杂的几何体上实现令人惊叹的效果!