[UE4]Indirect Lighting Cache & Lightmass Importance Volume
keywords: Indirect Lighting Cache, Lightmass Importance Volume, Lightmass Volumes, 间接光照缓存
某台湾网站上的文章,比油管上讲Indirect Lighting的教程更直观易懂:
https://home.gamer.com.tw/creationDetail.php?sn=3315244
Indirect Lighting Cache(间接光照缓存)
官方文档:
Lightmass Importance Volume
Indirect Lighting Cache
Indirect Lighting Cache是类似于Unity的LightProbe,间接光照就是当光线直射到一个物体上后,光线反弹后所得到的颜色,反弹后的光线还会再去影响到周边的物体,如同白色的桌面上摆着红色的物体,物体周围会有些微的红色。
而Indirect Lighting Cache还有一种功能就是提供动态物件能获得间接光的资讯,例如像是当角色靠近一面红色墙壁时,会有些微的红光反映在角色身上。
在UE4里面建构光照后会自动产生Indirect Lighting Cache,可以从编辑画面的Show > Visualize > volume light sample显示当前Indirect Lighting Cache的情形。
显示间接光照缓存
没有间接光照缓存的情况,角色不会受到静态灯光的颜色影响
有间接光照缓存时,角色即会受到静态灯光影响
可以从上图看到场景中那些小正方形就是间接光照缓存的颜色,周围的物件会受到靠近的间接光照颜色影响。
Lightmass Importance Volume(重要光照范围)
官方文档
http://api.unrealengine.com/INT/Engine/Rendering/LightingAndShadows/Lightmass/Basics/index.html
在建构光照贴图时,若场景中没有给予Lightmass Importance Volume,会对整个场景做间接光照的采样,产生Indirect Lighting Cache,这对大型游戏场景是相当的浪费,像是游戏角色到不了的中、远景不需要产生Indirect Lighting Cache,这时候就可以在场景中置入Lightmass Importance Volume,指定特定区域内才会产生Indirect Lighting Cache,节省不少建构光照的时间。
Modes视窗中的Volumes页签找到Lightmass Importance Volume
拖曳至场景后,调整Scale直到包覆特定区域即可
建构光照后会在Lightmass Importance Volume区域内看到产生的间接光照缓存
Lightmass Character Indirect Detail Volumes(角色细节间接光范围 )
在上述的Lightmass Importance Volume所建构出来的间接光会发现大多都只有在模型上才有,无法在浮空的地方产生间接光缓存 (像是靠近天花板的地方),主要原因是Lightmass Importance Volume是提供使用者快速建构重要范围,没有办法处理到细节的部份,因此在这种情况下会产生这种问题:
当角色跳跃至天花板附近时,受光会变亮
主因是因为靠近天花板那区没有产生间接光照缓存
这时候就需要补充细节的间接光,就必须使用Lightmass Character Indirect Detail Volumes,一样在Modes里的Volumes页签中找Lightmass Character Indirect Detail Volumes,拖曳至场景后放在需要补足间接光的地方,再建构光照贴图后即可。
Modes视窗中的Volumes页签找到Lightmass Character Indirect Detail Volumes
包覆需要间接光细节的区域
建构光照后就会在该区域生成间接光照缓存
增加了间接光后,靠近天花板会变亮的问题就解决了
Lightmass Character Indirect Detail Volumes通常会应用在垂直的地形上,像是升降梯、电梯那种,只要角色到的了的地方但却没有间接光缓存时就可以使用!
非淡泊无以明志, 非宁静无以致远。----诸葛亮《诫子书》