您需要 登录 才可以下载或查看,没有账号?注册
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 场景作品:
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 了!
注:如有侵权立即删除!
|