UE4 ARKit动态光照阴影解决方案

UE4 ARKit动态光照阴影解决方案(当前版本4.18.2)

UE4.18 ARKit dynamic illumination shadow



先上效果:

UE4 ARKit动态光照阴影解决方案_第1张图片
UE4 ARKit动态光照阴影解决方案_第2张图片
UE4 ARKit动态光照阴影解决方案_第3张图片
UE4 ARKit动态光照阴影解决方案_第4张图片

正文:

下面说明实现方式:

正常情况下要产生阴影首先需要具备3个条件:1、产生照明和阴影的灯光;2、接受照明的物体;3、接受阴影的物体

第一第二个条件相信大家都没有问题

接下来我们看第3个条件:接受阴影的物体。由于AR状态下我们看到的场景是通过镜头拍摄到的场景,我们放置一个物体在平面上,而实际上这个平面在虚拟空间中是不存在的,于是没有了可接受阴影的平面。所以我们要建一个虚拟平面来接受阴影,那么最严重的问题出现来,虚拟平面如何跟相机拍摄到的内容进行融合呢?

一开始我考虑过用scence color节点来做,把平面背后的图像现实在平面上,但是scence color只能在材质属性为Translucent模式下可用,而在此模式下,物体是不能接受阴影的,所以放弃。

于是想到了第二种方法:把相机的拍到的图像赋予给平面,并匹配显示坐标,材质连接方式如下:


UE4 ARKit动态光照阴影解决方案_第5张图片

连接好材质后赋予给平面,打包到手机效果就出来了

但是

心细的同学会发现,由于受光照影响,平面还是有微弱的轮廓可以被察觉到。

于是你还要做一下步骤:

修改材质属性为mask模式,展开选项勾选Dither Opacity Mask


UE4 ARKit动态光照阴影解决方案_第6张图片

如此便有了一个可以接受动态阴影到虚拟平面了

关于移动端阴影问题请参考UE4 定向光(DirectionalLight)下小物体阴影消失或不清晰问题解决方案


作者——Ivan杨杨兮

Q:523166477

你可能感兴趣的:(UE4 ARKit动态光照阴影解决方案)