大家知道,在Unity里可以通过设置Directional Light里面的选项出现实时阴影,在PC端可以运行的非常好,但是如果将其放到移动端,移动端目前的硬件还不支持实时阴影的绘制,这就需要我们自己想办法解决在移动端的实时阴影绘制,接下来给大家说一下,实时阴影是如何在移动端绘制的。
先给大家看一幅图片:
首先给一盏灯光,灯光照射到物体后,会在地面有个接收阴影的面或者Plane或者Terrain。都可以作为接收。
如果有障碍物的话也可以将其投射上去。如图所示:
在程序运行的效果图如下所示:
接下来我们开始实现,首先我们需要一个Projector组件,这个组件是Unity提供的。
我们还需要一个接收的材质,
我们还需要一个接收阴影的脚本。如下所示:
有了上面这些我们就可以实现实时阴影了。
以上方法只是对圆球体有用,物体也是会投射成圆球体,这不是我们需要的,我们需要是对任何物体都可以的,这就需要我们自己去实现Proector。效果如下图:
代码示意图:
这样实现的阴影效果图,可以在手机端运行,而且帧数足够满足。代码后面奉上。