今天是2020年11月23日 星期一
正文共:6560字 64图 预计阅读时间17分
上一期我们认识了基本灯光以及参数那么接下来我们就实际使用下,看下场景中是如何设置参数之间如何配合才能烘焙出更好的效果。
首先我们先创建一个场景,对场景进行一个基本配置
![16c62a0837fe6b877d614ef1d00b06ff.png](https://i-blog.csdnimg.cn/blog_migrate/b3aaa8627186410b9f8b096cacd0006d.jpeg)
后处理
【明度色彩相关的后处理】
举例说明:
UE4的空场景中是有默认的后处理场存在的,将镜头摇下来,对准地面能看到自动曝光的变化过程【如下所示】:
![24e75f23b6d2b7b1f57a572623804568.png](https://i-blog.csdnimg.cn/blog_migrate/afad5cfc94a9b871f7d4cf512a9c7dbe.jpeg)
因此,调节场景时无法锁定显示效果,故需要先加入自定义的后处理场,将默认的后处理效果“覆盖”。【setting中有对特定后处理禁用的选项;这里不建议直禁用某项功能 】
具体设置:
![9c2d54e1b7c162ea6f6289a26327811f.png](https://i-blog.csdnimg.cn/blog_migrate/ce50d7187a284a1f65ef8ffa4baa339c.jpeg)
![8f1649da32d48b39eacb7fa23ef5a85b.png](https://i-blog.csdnimg.cn/blog_migrate/535a08584f1f36785584e31aa1bf800a.png)
![bc22d173904b804910ab37f940515f03.png](https://i-blog.csdnimg.cn/blog_migrate/35ba61d5d9cf92f13e7351ede224a2d0.png)
![ee4126aa5e0aade1336e8d6d31a93315.png](https://i-blog.csdnimg.cn/blog_migrate/2d40a15ead225aa150a5b54e7026e54e.png)
【反射相关的后处理】
SSR【基于屏幕空的反射】经由相机逆向查找物体对应位置关系计算所得,并非通过HDR手段绘制反射效果。效果在镜头中心位置很真实,边缘由于算法问题会出现真空带(非常明显);故此用于模拟粗糙表面的反射较好。
举例说明:
由于场景中没有天光(或其他HDR信息提供者)故一个镜面物体的显示效果应当为纯黑,而此时【如下所示】
![d03010240f220b4bf64afbbf21269450.png](https://i-blog.csdnimg.cn/blog_migrate/175014bed25d32301c0c2d6bed8cf1c1.jpeg)
具体设置:
将屏幕空间的反射强度归零【如下所示】
列举三种HDR反射效果
![2b4ba9d399a4ad0da7846cad0b4494c0.png](https://i-blog.csdnimg.cn/blog_migrate/41741e6dbf04a70709ab2fa11f0ffd71.jpeg)
天光内添加HDR
![805363cd4389a367143bf77bd18dd2df.png](https://i-blog.csdnimg.cn/blog_migrate/22353a641e591d846f96c60b7e793e52.jpeg)
动态采集添加HDR(捕获场景环境)
![1e9effabc334a7fdd6d7ffcdcec730c9.png](https://i-blog.csdnimg.cn/blog_migrate/5a6b2f6f6f48cec01898f423c060da6b.jpeg)
静态HDR(手动载入hdr)
如何为良好的照明准备资产
![5b41eecbfaa7cf4478ee8f1e61919dbb.png](https://i-blog.csdnimg.cn/blog_migrate/76aeb1e902b6f784726cecc589481075.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 检测一下。
动态照明的优点是什么?
光照贴图存储光照信息,并打包成纹理
每个光照贴图都是HDR纹理的集合
另外,它不仅存储光强度,而且还存储光的方向
设置 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 次就足够了。
![12c93f2ebd00caa724730ee187cefd60.png](https://i-blog.csdnimg.cn/blog_migrate/bfc0a2ae7629b49b8cd9c07f3969d39c.png)
下面是对比数据:
■ 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 面板
![f722e71da9948d768f94400f6fc81c7c.png](https://i-blog.csdnimg.cn/blog_migrate/24fbb0e8523739aa2c6f03f4635e9928.png)
用于整体调整烘焙质量,对烘焙时长影响很大
■ 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 开始起效。
![af2e35c2cc1473369679c235faf5c554.png](https://i-blog.csdnimg.cn/blog_migrate/202cd23b396bd787508b4b9456c3c07f.jpeg)
视频内容到此结束。下面是完整视频
其他重点内容还有
LightmassImportanceVolume(重点光照区域)
,如果不设置此项,Lightmass 将默认对全场景进行采样,对于较大场景来说,比较浪费资源。
Lightmass 中的,
Environment Color 与
Environment Intensity 控制没有受到光线直射部分的颜色和强度(阴影部分)。
Diffuse Boost,控制反弹颜色强度,比如红色墙面反弹红色光线。
![b1167699a7ab07d366516e58f7ed5bc1.png](https://i-blog.csdnimg.cn/blog_migrate/d71e4e4107f5f44d7b3959ee3fac9fe6.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](https://i-blog.csdnimg.cn/blog_migrate/9d241b06983b37444160ea93ef5e39c0.png)
以下谈论的部分不涉及LightMass光照贴图的分辨率影响。光照贴图分辨率越小越好,如果你明确阴影产生的是锯齿而不是噪点,那就该加分辨率。
这四个档位实际上只是针对具体的基本参数的倍率关系,具体倍率在
Epic Games/4.9(你的引擎版本号)
/Engine/Config/BaseLightmass.ini
文件中(记事本打开)Crtl+F搜索对应档位关键词可以找到。可以自己调也可以保持默认以防调整太夸张。
02.另外在引擎中另一个地方的参数同样会影响基础烘培参数,那就是“世界设置”,如下
![a000b1421a287186b25181c342413341.png](https://i-blog.csdnimg.cn/blog_migrate/7b9332b9bbd36f3ea68324d077b7c6b8.png)
涉及到的参数包括
1.
Static Lighting LevelScale
(下文简称SLLS),世界尺寸缩放,这里的缩放指的用于计算光照的参考尺寸,而不是真正的改变场景尺寸,默认为1,可以小到0.1。
重点参数,越小计算采样的基础精度(采样数上升)越高。计算时间受该参数强烈影响。
Static Lighting Level Scale(静态光源等级缩放)
这可用于确定在照明中计算多少细节,较小的比例将大大增加构建时间和细节。增加细节。
1-0.5-0.2-0.1
![b944fa8933e7a1295a6ef3f033c1f5a5.png](https://i-blog.csdnimg.cn/blog_migrate/c85eef4ae39b130394e1423b7e9760aa.png)
2.
Num Indirect LightingBounce
(下文简称NILB),反弹次数,对计算时间影响不大,越高GI反弹次数越多,同时如果精度不够,也意味着噪点将会更容易产生。可以大到100。非重点参数。
Num Indirect/Sky Lighting Bounces:影响场景中中的亮度
![026328cc9a8e961dd1dd64094e3ee945.png](https://i-blog.csdnimg.cn/blog_migrate/35a2e3fda9de404b8f530274910fc771.png)
3.
Indirect Lighting Quality
(下文简称ILQ),间接光计算质量,默认值1,可以大到10,
重点参数,对精度影响巨大,计算时间也和这个值成整倍数上升。
Indirect Lighting
Quality(间接照明质量)
设置越高,会导致构建时间大量增加,但解算器穿帮(噪点、斑点)变少。减少噪点
![105866c144a5919f93d5c2ccc171dd95.png](https://i-blog.csdnimg.cn/blog_migrate/8f246f8a5fb29174230e086dd95c58eb.png)
在经验上,我们为了构建时间和最后质量做权衡,我们让他们有一个固定的关系
![7798ec2ed061336e26be9d417b54f5fd.png](https://i-blog.csdnimg.cn/blog_migrate/6df575d93290881aaae35798c64dbb16.png)
4.
Indirect LightingSmoothness
(下文简称ILS),结果模糊度,用于模糊计算结果,平滑噪点,基本保持1的值,过大细节丢失,过小噪点凸显。
Indirect Lighting Smoothness(间接照明平滑度):影响场景中中的亮度
![c4906ce648308343aa80acf478f01734.png](https://i-blog.csdnimg.cn/blog_migrate/e686484fc0d1fccc02baeffc78c0a3b6.png)
Evironment color/Environment intensity
![1ef01ddc851d24a5871335a8d1160e90.png](https://i-blog.csdnimg.cn/blog_migrate/092f31f1badbdd1cea302ad7a5ea9b0b.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文件中调,都行,选其一就行。如下图。
![9502aee6ae909034b36a5de0758aa53e.png](https://i-blog.csdnimg.cn/blog_migrate/c13d87a988ef55dbf642fd67e4cc44a0.jpeg)
“采样精度”:在引擎中,受ILQ控制,
在BaseLightMass.ini中,
受NumHemisphereSamples
或者NumHemisphereSamplesScale的控制,
三者选其一即可。
光源设置灯光
![ae57c18fbab037287a2fb5b42abcf51d.png](https://i-blog.csdnimg.cn/blog_migrate/5d63ed8a537982085e1c895597207313.png)
indirect Lighting Saturatio
n(间接照明饱和度)
Shadow Exponent
(阴影指数)
控制阴影半影的衰减,或区域从完全光照到完全阴影的变化速度
![d0b40798b5c8189e18798df0fe0d90a2.png](https://i-blog.csdnimg.cn/blog_migrate/ef849ca1181fa4cb97bbd22d072b3ac6.png)
最后说一说渲染时间,想要好的效果,要花费不少的时间,如果是单台I7级别的电脑,简单场景高质量花费十多个小时很正常,复杂场景就更多了,所以建议有条件的使用引擎路径中的SwamCoordinator小软件
(可以在引擎安装目录搜索出来)联机渲染,效率高很多,具体设置这里就不展开了,Google
文献地址:
https://mp.weixin.qq.com/s/CUVJ57s_qsCNzdVHw5OhNQ
下一期我们分享资源导UE4应该做哪些准备工作
![ce32bb979b78547377e7f3e4d25e07f0.png](https://i-blog.csdnimg.cn/blog_migrate/21e456fe8c31fed161da89a1bf52be45.png)
本期分享就到这里!更多精彩+++关注联系我们
下期见,学习不止,不止学习
微信群服务号
公众号
B站