[UE虚幻] 精通 UE4 Lightmass

查看:121 |回复:0 | 2023-9-3 23:50:53

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 依旧心 于 2020-11-26 15:57 编辑

大家好,最近 UE4 更新了4.18版本,有了很多渲染方面的提升,所以久违的更新一篇渲染相关的 Lightmass 内容。
(4.18版本更新内容:
https://forums.unrealengine.com/unreal-engine/announcements-and-releases/1374252-unreal-engine-4-18-released)
Lightmass 是 UE4 中一个很重要的部分,用于生成复杂光线下的光照贴图(lightmap),也就是烘焙,运用得当可以制作媲美离线渲染品质的场景光照效果。首先我们来欣赏一些来自艺术家kooooola的 UE4 场景作品:
0
0

OK,我们知道了 UE4 可以做的很 DIO,接下来我们进入正题。


前不久 Unreal 官方上传了一个 2017蒙特利尔 UE4 开发者日的大师班视频,内容是由主美 Jerome Platteaux 讲解的光照技巧,包括 PBR 渲染基础、如何选择前向或延迟管线、动态光照以及图像光照。

碰巧呢,又有一位少年 Tom Looman ,分享了他对于这个视频的总结,原文链接:
http://www.tomlooman.com/lighting-with-unreal-engine-jerome/
这篇总结极大方便了我们即查即用。
下面结合着视频和文章我来说一下场景打光的重点内容:

由于本文着重渲染烘焙部分,所以对视频中前段渲染管线以及 PBR 的部分还有动态光照部分不做讲解,之后可能的话,再单开一期
另外视频有部分内容已不适用于 4.18 版本,如 4.18 新增
Num Skylight Bounce (天光反弹次数):
之前的版本天光是不发射光子的(只有一次反弹)。

Post-processing 设置(打光前)
在对场景打光前,需要对 PP 进行一些设置以便得到一致的光照烘焙结果。(原视频 10:00 处)

■ 关闭 Auto Exposure
■ 关闭 SSAO 以及 SSR
■ 保持默认 tone mapper
■ Vignetting = off
■ Bloom = off

正确的光照预览参照球材质设置如下:
■ Chrome Sphere 铬球
    ■ Base Color 1
    ■ Metallic 1
    ■ Roughness 0
■ Grey Sphere 灰度球(50%灰度,sRGB)
    ■ Base Color 0.18(Linear)
    ■ Roughness 1
    ■ Metallic 0
■ Directional Light 3.14(π)
这时在视窗里应该会得到一个接近 0.5 灰度的场景,可以用截图软件在外部用 PS 检测一下。

设置 Lightmaps
在 Static Mesh Editor 中启用 Generate lightmap UVs ,适当调节 Min Lightmap Resolution 与 Light Map Resolution 得到适当的 Padding 值与分辨率。(原视频 16:36 处)
光照贴图分辨率并不是越大越好,要在尺寸和时间上进行权衡,首先从较小分辨率开始,当烘焙出现锯齿而不是噪点的时候,应适度提升分辨率。

光照质量(Lightmass)设置
以下设置在 World Settings 中。

Num Indirect Lighting Bounce(19:27)(间接光反弹次数)
许多用户喜欢把这个值提高到 100 次,不过好在这个对烘焙时长影响不大,但同时对光照质量影响也不大。实际使用这个值设置为 3 - 5 次就足够了。
下面是对比数据:
■ Bounce 0 (耗时 2 分 54 秒)
■ Bounce 100 (耗时 3 分 31 秒)

Static Lighting Level Scale(20:20)(静态光比例)
默认值为 1,越小细节越多,最终我们使用 0.1,对比如下(噪点下文讲):

Indirect Lighting Smoothness(21:00)(间接光光滑度)
这个值大于 1 会减少间接光的噪点(由静态光比例造成的噪点),会增加烘焙时长。对比如下,值过大会造成溢光,1.2 左右效果良好:

Indirect Lighting Quality(21:51)(间接光质量)
控制光线数量,范围是 1~10 ,可以减少间接光反弹时产生的噪点,会极大增加烘焙时长。
■ Indirect Lighting Quality 1(耗时 7 分 48 秒)
■ Indirect Lighting Quality 10(耗时 1 小时 5 分 24 秒)
对比如下:

Lighting Build Quality(22:10)(光照烘焙质量)
此项位于 Build 面板
用于整体调整烘焙质量,对烘焙时长影响很大
■ Preview(耗时 2 分 16 秒)预览
■ Medium(耗时 7 分 48 秒)中级
■ High(耗时 13 分 58 秒)高级
■ Production(耗时 30 分 22 秒)产品级

Lighting Level Scale 与 Indirect Lighting Quality
参照如下公式,我们可以得到良好的烘焙结果:
Static Lighting Level Scale × Indirect Lighting Quality = 1
■ 0.1 × 10 = 1
■ 0.2 × 5 = 1
■ 0.5 × 2 = 1

各项设置对于烘焙时长的影响:
■ Static Lighting Level Scale - 控制细节(中)
■ Num Indirect Lighting Bounces - 控制明亮度(低)
■ Indirect Lighting Quality - 降低噪点光斑(高)
■ Indirect Lighting Smoothness - 模糊间接光(低)

使用 Light Portal 来增强天光
在门窗等结构处可以通过使用 Light Portal 来提升光照效果:

Directional Light Stationary Area Shadow(41:42)(平行光软阴影)
Lighting Source Angle 控制光源所占球形角度(如图红色部分),范围 1~10。

Contact Shadows(接触阴影)
新功能,可以提供大物体上小细节阴影的效果,比较耗资源,但是实际使用感觉效果一般,值从 0.1 开始起效。

OK,视频内容到此结束。

其他重点内容还有 LightmassImportanceVolume(重点光照区域),如果不设置此项,Lightmass 将默认对全场景进行采样,对于较大场景来说,比较浪费资源。
Lightmass 中的,Environment Color 与 Environment Intensity 控制没有受到光线直射部分的颜色和强度(阴影部分)。
Diffuse Boost,控制反弹颜色强度,比如红色墙面反弹红色光线。
最后确保一下 Lightmap 的存储是未压缩格式。


以上 Lightmass 设置适当调整可以让我们得到一个很棒的场景渲染效果,但是还有额外可以做的工作让效果更好,打个比方大概就是从 95%提高到 100% 的感觉,那就是手动更改引擎BaseLightMass.ini 文件。
该配置文件位于相应版本引擎目录下的 ...EngineConfig 中,每个版本引擎都有各自的配置文件。
该文件内容比较复杂,所以这里我只列一些参考数值,具体含义也不进行讲解了。
离线渲染是不断调试的过程,所以不要无脑想把所有参数调的越高越好。

下面我列举一个参考调试过程:

使用 “Medium” 品质 Build。

①调试灯光大体效果
Static Lighting Level = 0.6
.ini 文件参数如下:
NumIrradianceCalculationPhotons = 4096
NumHemisphereSamples = 64
IndirectPhotonDensity = 3000
IndirectIrradiancePhotonDensity = 1500
IndirectPhotonSearchDistance = 180

②如没问题进行下一步调试
Static Lighting Level = 0.4
.ini 文件参数如下:
NumIrradianceCalculationPhotons = 4096
NumHemisphereSamples = 128
IndirectPhotonDensity = 6000
IndirectIrradiancePhotonDensity = 3000
IndirectPhotonSearchDistance = 180

③最终调试
Static Lighting Level = 0.2
.ini 文件参数如下:
NumIrradianceCalculationPhotons = 4096
NumHemisphereSamples = 256 或 512
IndirectPhotonDensity = 12000(如依旧有光斑,提高此项)
IndirectIrradiancePhotonDensity = 8000(如依旧有光斑,提高此项)
IndirectPhotonSearchDistance = 180(180 ~ 240)

下面贴个配置文件参数,据说是从 Evermotion 那边来的,不过我并没有测试过效果:

[DevOptions.StaticLighting]
NumUnusedLightmassThreads=2

[DevOptions.PrecomputedDynamicObjectLighting]
MaxVolumeSamples=50000

[DevOptions.ImportanceTracing]
AdaptiveBrightnessThreshold=.05
NumHemisphereSamples=128

[DevOptions.PhotonMapping]
DirectPhotonDensity=4096
DirectIrradiancePhotonDensity=4096
IndirectPhotonDensity=8192
IndirectIrradiancePhotonDensity=16384

[DevOptions.IrradianceCache]
RecordRadiusScale=.4

[DevOptions.StaticLightingMediumQuality]
NumShadowRaysScale=8
NumPenumbraShadowRaysScale=16
NumDirectPhotonsScale=8
NumIndirectPhotonPathsScale=10
NumIndirectPhotonsScale=20

[DevOptions.StaticLightingProductionQuality]
NumShadowRaysScale=24
NumDirectPhotonsScale=8
NumIndirectPhotonPathsScale=8
NumIndirectPhotonsScale=16
NumIndirectIrradiancePhotonsScale=24


亲测 4.18 的烘焙速度和质量都有一定提升,下面是测试用的渣场景:
(耗时 1 小时)
但是官方文档说的小孔成像效果我并没有尝试成功,有人成功了可以来交流一下。
目前版本静态效果已经接近完美了,接下来就等大 Vray for UE4 了!

注:如有侵权立即删除!


2023-9-3 23:50:53  
 赞 赞 0

使用道具 登录

0个回答,把该问题分享到群,邀请大神一起回答。

CG 游戏行业专业问题

图文教程技术文章技术文库UE虚幻引擎
显示全部 7
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表