前言
UE4的场景阴影采用静态和实时混合的计算方式:CSM(级联阴影)范围内的阴影通过实时计算得到,CSM范围外的阴影信息从预烘焙的静态贴图中获取。
上图中,方块和地板为场景静态模型,近处地板上阴影清晰的部分为方块和角色的实时阴影,远处红框选中部分为方块的静态阴影。
这里把地板的LightMap烘焙质量调低,同时把CSM的清晰度调高,让CSM范围边界更明显。
预烘焙的灯光信息存储在离线构建的贴图“簇”中,包含存储颜色信息的LightMap贴图和存储静态阴影信息的ShadowMask贴图。
上图为所示场景的ShadowMask贴图,其中红框选中部分为地板在ShadowMask贴图中的占用部分。
在移动端的灯光方案中,一般不会为场景开启实时阴影。没有场景实时的阴影遮挡,角色能否获取场景阴影信息用于渲染呢?
实现
在光源方向不变的前提下,场景静态阴影跟实时阴影的信息是一致的,角色虽然没有静态阴影信息,但