ue4场景没阴影_在UE4中实现角色获取场景静态阴影信息

在UE4中,当移动端不开启实时阴影时,可以通过角色在地面的碰撞获取静态模型的ShadowMask贴图坐标,结合ScaleBias采样得到场景静态阴影信息。文章详细介绍了实现步骤,包括获取ShadowMask贴图、坐标ScaleBias、LightMapUV坐标,以及如何在材质和Shader中处理这些信息。
摘要由CSDN通过智能技术生成

前言

UE4的场景阴影采用静态和实时混合的计算方式:CSM(级联阴影)范围内的阴影通过实时计算得到,CSM范围外的阴影信息从预烘焙的静态贴图中获取。图1:场景混合阴影效果示例

上图中,方块和地板为场景静态模型,近处地板上阴影清晰的部分为方块和角色的实时阴影,远处红框选中部分为方块的静态阴影。

这里把地板的LightMap烘焙质量调低,同时把CSM的清晰度调高,让CSM范围边界更明显。

预烘焙的灯光信息存储在离线构建的贴图“簇”中,包含存储颜色信息的LightMap贴图和存储静态阴影信息的ShadowMask贴图。图2:ShadowMask贴图

上图为所示场景的ShadowMask贴图,其中红框选中部分为地板在ShadowMask贴图中的占用部分。

在移动端的灯光方案中,一般不会为场景开启实时阴影。没有场景实时的阴影遮挡,角色能否获取场景阴影信息用于渲染呢?

实现

在光源方向不变的前提下,场景静态阴影跟实时阴影的信息是一致的,角色虽然没有静态阴影信息,但所处的地面静态模型有。

实现过程为:在角色位置向下Trace地面,获取碰撞地面模型关联的ShadowMask贴图和坐标ScaleBias,再根据碰撞三角面插值得到角色位置的LightMapUV坐标,最后用该坐标结合ScaleBias去采样ShadowMask贴图。

1.获取ShadowMask贴图

静态Mesh烘焙相关的LightMap、ShadowMask贴图等通过FPrimitiveSceneProxy的FLightCac

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值