您的位置:首页 > 移动开发 > Unity3D

unity移动平台阴影解决方案

2016-01-16 13:32 1291 查看

unity移动平台角色阴影解决方案

Projector Shadow制作

思路:主要是利用一个正交的camera去获取阴影模型的体面,赋予给创建的一个rendertexture,然后利用projector去渲染这个rendertexture

创建场景


1为剑的阴影模型,2为人物的阴影模型(注:为了资源优化,两个阴影模型可用超低面数)

拉取一个人物到场景,同时,人物模型应包含所需要的阴影模型

对人物设置如下:

人物其他部分层级不变,在Inspector面板的layer中新建一个Shadow层级,将两个shadow模型的层级改变为Shadow;


创建Projector_Camera

关闭灯光阴影,新建一个Camera,同时将重命名为Projector_Camera,参数进行调整

Camera具体参数如下:


创建RenderTexture

在Project中右键新建一个RenderTexture,命名为ShadowTest


创建RenderTexture的主要目的是为了将我们创建的Porjector_Camera拍摄的画面转存到RenderTexture里,以便我们创建接下来Projector后的渲染调用

创建Projector

在Hierarchy视图中创建一个空物体,命名为Projector,同时为空物体添加一个Projector组件!


将Project拖到Projector_Camera下面,同时将我们刚创建的rendertexture拖到Projector_Camera的Target Texture中,为rendertexture获取所需的图像


创建材质球

创建一个材质球shadow,赋予给Projector组件,材质球用能够渲染Rendertexture的类型,同时将我们的Rendertexture拖到材质球上进行应用

这个时候已经有阴影了,但是位置和方向不正确,我们根据灯光方向需要重新调整我们的方向和位置,同时我们需要对渲染的层次进行调整

camera的CullingMask去选掉Shadow层级,使我们的游戏画面不会对阴影模型进行渲染


新建一个层级Terrains,将地面改为Terrains层级,同时在Projector的IgnoreLayers进行设置,将Terrains层级去选(注:Terrains层级是为让阴影在特定的层级上进行显示,减少资源消耗)

经过调整后,阴影就正常显示了


为了让阴影和动作匹配,要将Projector_Camera和Projector拖到动作的脚部移动点(改变移动位置,不会改变旋转)


Ok,整体完成,播放时阴影就可以和动作匹配了!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息