ue4离线文档_【UE4烘焙】完美的烘焙效果,应该怎样配置环境设置灯光参数?这些你都知道吗?...

今天是2020年11月23日  星期一

正文共:6560字 64图  预计阅读时间17分

上一期我们认识了基本灯光以及参数那么接下来我们就实际使用下,看下场景中是如何设置参数之间如何配合才能烘焙出更好的效果。

首先我们先创建一个场景,对场景进行一个基本配置

16c62a0837fe6b877d614ef1d00b06ff.png

后处理

【明度色彩相关的后处理】
举例说明:

UE4的空场景中是有默认的后处理场存在的,将镜头摇下来,对准地面能看到自动曝光的变化过程【如下所示】:

24e75f23b6d2b7b1f57a572623804568.png

因此,调节场景时无法锁定显示效果,故需要先加入自定义的后处理场,将默认的后处理效果“覆盖”。【setting中有对特定后处理禁用的选项;这里不建议直禁用某项功能 】

具体设置:

9c2d54e1b7c162ea6f6289a26327811f.png

8f1649da32d48b39eacb7fa23ef5a85b.png

bc22d173904b804910ab37f940515f03.png

ee4126aa5e0aade1336e8d6d31a93315.png

【反射相关的后处理】

SSR【基于屏幕空的反射】经由相机逆向查找物体对应位置关系计算所得,并非通过HDR手段绘制反射效果。效果在镜头中心位置很真实,边缘由于算法问题会出现真空带(非常明显);故此用于模拟粗糙表面的反射较好。

举例说明:

由于场景中没有天光(或其他HDR信息提供者)故一个镜面物体的显示效果应当为纯黑,而此时【如下所示】

d03010240f220b4bf64afbbf21269450.png

具体设置:

将屏幕空间的反射强度归零【如下所示】

2d0e32af70c9acd2ffd18172013dc47d.png列举三种HDR反射效果

2b4ba9d399a4ad0da7846cad0b4494c0.png

天光内添加HDR

805363cd4389a367143bf77bd18dd2df.png

动态采集添加HDR(捕获场景环境)

1e9effabc334a7fdd6d7ffcdcec730c9.png

静态HDR(手动载入hdr)

如何为良好的照明准备资产 22df8fe7bdd54e66b51d3e2e82dfebab.png 9a81f40aea58c916d0205f3a35946182.png 80d067cf0f1a2c435383a265af964e11.png 8a05345625d64382ca0cec72bbcba119.png 0a270566938049ae3d907c7eac0078d9.png 56434f076672978733c658fa2e788042.png c622782f83c40e97671a194722d7a89f.png da1795c3516bfa18324c05bd06eb8326.png 7ba0a7511100118726ed704219255777.png 85cd9d8e3ecdd3607249daced1cc30f0.png ce345c0d17aa00e8366dc42c6c49a6c0.png 57d13f0dbc0f270c13b17da38740fe7c.png d03e849c6966fd605ab9dd7ff66d3a16.png 30e81514e263a7be2296c023cf8a28ae.png 52cf14b436af4347f1a2ed78b70b2db5.png 0c00b366593402d4ee5f171ae4fe2569.png 5b41eecbfaa7cf4478ee8f1e61919dbb.png 照明前的基本设置 1bee9c35da22be75abc837a9bfee3967.png

重要内容重复

Post-processing 设置(打光前) 在对场景打光前,需要对 PP 进行一些设置以便得到一致的光照烘焙结果。 (视频10:00 处) ■ 关闭 Auto Exposure (操作:将min brightness和max brightness都改成1) ■ 关闭 SSAO 以及 SSR (操作:ambient occlusion和Screen Space Reflection的intensity改成0) 屏幕空间环境光遮挡(SSAO)是一种近似因光遮挡而导致的光衰减的效果 文档详解 https://docs.unrealengine.com/en-US/Engine/Rendering/LightingAndShadows/AmbientOcclusion/index.html 屏幕空间反射(SSR)是默认情况下启用的一种效果,可更改对象在“材质”表面上的外观。 文档详解 https://docs.unrealengine.com/en-US/Engine/Rendering/PostProcessEffects/ScreenSpaceReflection/index.html ■保持默认 tone mapper (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 检测一下。 2fd25c943d3820f7412b1e84ef7419be.png
  • 使用烘焙的照明,您将获得GI(全局照明)

  • 您有便宜的柔和阴影,因为它们是烘烤的,因此无法评估

  • 它对全球GPU的要求不高。

  • 这里是缺点。您的迭代速度较慢。

  • 每次更改内容时,都需要重新烘烤。

  • 照明是静态的。基本上,这意味着没有任何动作

  • 这需要更多的内存,因为所有的光

  • 烘焙光照贴图中的内容,然后将其存储在内存中。

动态照明的优点是什么?
  • 所见即所得基本上,您所做的任何调整都是您在屏幕上看到的内容,它是完全实时的,因此您可以调整所有内容

bcb38dce28522f8b67533b465c540bef.png
  • 光照贴图存储光照信息,并打包成纹理

  • 每个光照贴图都是HDR纹理的集合

  • 另外,它不仅存储光强度,而且还存储光的方向

825e8819dbc60b91e771a211a09fb29c.png
  • 当然,光照贴图的分辨率越低生成速度越快。您的迭代速度更快。您还会得到一个非常柔和的阴影。

  • 光照贴图分辨率越高,生成速度就越慢 但是您有更好的阴影

5f2c3d6ee3b8bd0d23c768a2e3573c54.png 4f2b0ca62c17b8e595cb7b556f26edf7.png
  • 当您烘烤照明时,仅烘焙两种类型的光静态和固定的要注意的一件事是,定向光点光源和聚光灯是目前唯一能发出光子的光子。天光不发射光子。这意味着什么?只有一个反弹,因为它们不发射光子。

设置 Lightmaps 在 Static Mesh Editor 中启用 Generate lightmap UVs ,适当调节 Min Lightmap Resolution 与 Light Map Resolution 得到适当的 Padding 值与分辨率。 (视频 16:36 处) 光照贴图分辨率并不是越大越好,要在尺寸和时间上进行权衡,首先从较小分辨率开始,当烘焙出现锯齿而不是噪点的时候,应适度提升分辨率。 b5c6f851c330e8b645964f43b16b5985.png ce0f4a0e1f4e8dc0b033298e2606e6e9.png 光照质量(Lightmass)设置 以下设置在 World Settings 中。 ef78299fb295a543edf05146a4f353bf.png Num Indirect Lighting Bounce(19:27)(间接光反弹次数) 许多用户喜欢把这个值提高到 100 次,不过好在这个对烘焙时长影响不大,但同时对光照质量影响也不大。实际使用这个值设置为 3 - 5 次就足够了。 12c93f2ebd00caa724730ee187cefd60.png 下面是对比数据: ■ Bounce 0 (耗时 2 分 54 秒) ■ Bounce 100 (耗时 3 分 31 秒) 9a3b8a5c9ef9a9313d9715f210455cdf.png Static Lighting Level Scale(20:20)(静态光比例) 默认值为 1,越小细节越多,最终我们使用 0.1,对比如下(噪点下文讲): 99981b085a75b28b085d7b229263d013.png Indirect Lighting Smoothness(21:00)(间接光光滑度) 这个值大于 1 会减少间接光的噪点(由静态光比例造成的噪点),会增加烘焙时长。对比如下,值过大会造成溢光,1.2 左右效果良好: 28d3241901454d779676d54ad009d1a0.png Indirect Lighting Quality(21:51)(间接光质量) 控制光线数量,范围是 1~10 ,可以减少间接光反弹时产生的噪点,会极大增加烘焙时长。 ■ Indirect Lighting Quality 1(耗时 7 分 48 秒) ■ Indirect Lighting Quality 10(耗时 1 小时 5 分 24 秒) 对比如下: eb7d5fee25f9717b662cbcda60562649.png Lighting Build Quality(22:10)(光照烘焙质量) 此项位于 Build 面板 f722e71da9948d768f94400f6fc81c7c.png 用于整体调整烘焙质量,对烘焙时长影响很大 ■ Preview(耗时 2 分 16 秒)预览 ■ Medium(耗时 7 分 48 秒)中级 ■ High(耗时 13 分 58 秒)高级 ■ Production(耗时 30 分 22 秒)产品级 f64feb20667392cb1c1312b5f001e0f6.png 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 来提升光照效果: 5237b4cb572625ab4996973311ed638c.png Directional Light Stationary Area Shadow(41:42)(平行光软阴影) Lighting Source Angle 控制光源所占球形角度(如图红色部分),范围 1~10。 8a117e7ff1d1d9304a629492791818fb.png Contact Shadows(接触阴影) 新功能,可以提供大物体上小细节阴影的效果,比较耗资源,但是实际使用感觉效果一般,值从 0.1 开始起效。 af2e35c2cc1473369679c235faf5c554.png 视频内容到此结束。下面是完整视频 其他重点内容还有  LightmassImportanceVolume(重点光照区域) ,如果不设置此项,Lightmass 将默认对全场景进行采样,对于较大场景来说,比较浪费资源。 Lightmass 中的,Environment Color 与 Environment Intensity 控制没有受到光线直射部分的颜色和强度(阴影部分)。 Diffuse Boost,控制反弹颜色强度,比如红色墙面反弹红色光线。 b1167699a7ab07d366516e58f7ed5bc1.png 最后确保一下 Lightmap 的存储是未压缩格式。 以上 Lightmass 设置适当调整可以让我们得到一个很棒的场景渲染效果,但是还有额外可以做的工作让效果更好,打个比方大概就是从 95%提高到 100% 的感觉,那就是手动更改引擎 BaseLightMass.ini 文件。 该配置文件位于相应版本引擎目录下的 ...\Engine\Config 中,每个版本引擎都有各自的配置文件。 该文件内容比较复杂,所以这里我只列一些参考数值,具体含义也不进行讲解了。 离线渲染是不断调试的过程,所以不要无脑想把所有参数调的越高越好。 下面我列举一个参考调试过程: 使用 “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) 文献地址: https://mp.weixin.qq.com/s/CUVJ57s_qsCNzdVHw5OhNQ 场景环境 烘焙参数 设置完毕我们接下来看下影响烘焙质量的另一个参数设置

Lightmass光照烘培

01.GI(间接光)计算实际是造成目前次世代游戏引擎不真实的罪魁祸首,UE4其实完全能达到离线渲染的GI质量水平,关键是参数的调整和 大量的计算时间,关于GI也就是LightMass计算的调节,UE4在编辑器中给出了4个预制档位。 fb3cdea280b0386a16a105cd4443b1bb.png 以下谈论的部分不涉及LightMass光照贴图的分辨率影响。光照贴图分辨率越小越好,如果你明确阴影产生的是锯齿而不是噪点,那就该加分辨率。 这四个档位实际上只是针对具体的基本参数的倍率关系,具体倍率在 Epic Games/4.9(你的引擎版本号) /Engine/Config/BaseLightmass.ini 文件中(记事本打开)Crtl+F搜索对应档位关键词可以找到。可以自己调也可以保持默认以防调整太夸张。 02.另外在引擎中另一个地方的参数同样会影响基础烘培参数,那就是“世界设置”,如下 a000b1421a287186b25181c342413341.png 涉及到的参数包括 1. Static Lighting LevelScale (下文简称SLLS),世界尺寸缩放,这里的缩放指的用于计算光照的参考尺寸,而不是真正的改变场景尺寸,默认为1,可以小到0.1。 重点参数,越小计算采样的基础精度(采样数上升)越高。计算时间受该参数强烈影响。 Static Lighting Level Scale(静态光源等级缩放) 这可用于确定在照明中计算多少细节,较小的比例将大大增加构建时间和细节。增加细节。 1-0.5-0.2-0.1 b944fa8933e7a1295a6ef3f033c1f5a5.png 2. Num Indirect LightingBounce (下文简称NILB),反弹次数,对计算时间影响不大,越高GI反弹次数越多,同时如果精度不够,也意味着噪点将会更容易产生。可以大到100。非重点参数。 Num Indirect/Sky Lighting Bounces:影响场景中中的亮度 026328cc9a8e961dd1dd64094e3ee945.png 3.  Indirect Lighting Quality (下文简称ILQ),间接光计算质量,默认值1,可以大到10,  重点参数,对精度影响巨大,计算时间也和这个值成整倍数上升。 Indirect Lighting  Quality(间接照明质量) 设置越高,会导致构建时间大量增加,但解算器穿帮(噪点、斑点)变少。减少噪点 105866c144a5919f93d5c2ccc171dd95.png 在经验上,我们为了构建时间和最后质量做权衡,我们让他们有一个固定的关系 7798ec2ed061336e26be9d417b54f5fd.png 4. Indirect LightingSmoothness (下文简称ILS),结果模糊度,用于模糊计算结果,平滑噪点,基本保持1的值,过大细节丢失,过小噪点凸显。 Indirect Lighting Smoothness(间接照明平滑度):影响场景中中的亮度 c4906ce648308343aa80acf478f01734.png Evironment color/Environment intensity 1ef01ddc851d24a5871335a8d1160e90.png 5. Diffuse Boost (漫反射增强):加 Diffuse Boost的值是增加场景中间接光照亮度的有效方式 6. Use Ambient Occlusion (使用环境遮挡): 使静态环境遮挡可以通过全局光照计算并内置到您的光照图中。 7. Direct Illumination Occlusion Fraction (直接照明遮挡率):多少AO应用于直接照明 8. Indirect Illumination Occlusion Fraction (间接照明遮挡率):多少AO应用于间接照 9. Occlusion Exponent (遮挡指数):指数越高,对比度越高 10. Fully Occluded Samples Fraction (完全遮挡样本比例): 为了达到完全遮挡,必须遮挡的样本的比例。 11. Max Occlusion Distance (最大遮挡距离): 一个对象对另一个对象造成遮挡的最大距离。 12. Visualize Material Diffuse (可视化材质漫反射): 仅用导出到全局光照的材质漫反射覆盖法线直接和间接照明。这在验证导出的材质漫反射与实际漫反射匹配时非常有用。 13. Visualize Ambient Occlusion (可视化环境遮挡): 仅用AO项覆盖法线直接和间接照明。这在调整环境遮挡设置时很有用,因为它隔离了遮挡项。 14. Compress Lightmaps (压缩):是否压缩lightmap 综上所诉,最终的质量由 “采样数量”和 “采样精度”共同决定,缺一不可。 下面来分别讲解这两者的调节,只讨论质量,不计时间成本。 采样数量”:在引擎中,受SLLS的值控制, 在文首提到的BaseLightMass.ini文件中, 也受 NumIrradianceCalculationPhotons 和 IndirectPhotonScarchDistance 两者共同的影响,就是说两者要调一起调,单独调没用。无论在引擎还是在ini文件中调,都行,选其一就行。如下图。 f25d43ba66c1bd25b6013b161ff6c5c0.png 9502aee6ae909034b36a5de0758aa53e.png  “采样精度”:在引擎中,受ILQ控制, 在BaseLightMass.ini中, 受NumHemisphereSamples  或者NumHemisphereSamplesScale的控制, 三者选其一即可。 光源设置灯光 ae57c18fbab037287a2fb5b42abcf51d.png indirect Lighting Saturatio n(间接照明饱和度) Shadow Exponent (阴影指数) 控制阴影半影的衰减,或区域从完全光照到完全阴影的变化速度 d0b40798b5c8189e18798df0fe0d90a2.png  最后说一说渲染时间,想要好的效果,要花费不少的时间,如果是单台I7级别的电脑,简单场景高质量花费十多个小时很正常,复杂场景就更多了,所以建议有条件的使用引擎路径中的SwamCoordinator小软件  (可以在引擎安装目录搜索出来)联机渲染,效率高很多,具体设置这里就不展开了,Google 文献地址: https://mp.weixin.qq.com/s/CUVJ57s_qsCNzdVHw5OhNQ 下一期我们分享资源导UE4应该做哪些准备工作

ce32bb979b78547377e7f3e4d25e07f0.png

本期分享就到这里!更多精彩+++关注联系我们   

下期见,学习不止,不止学习

747a9a5cf20b509b56357ac6ba8f8754.png

微信群服务号

0a2e6a833b47c3052a4b2dfe812a0e37.png

公众号

d61810388ae0e882d6aa1a4272e2db83.png

B站

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值