角色实时阴影是游戏开发中比较常见的需求了,但是阴影的实现原理比较难懂,网上有很多关于阴影原理的解释和案例,可以研究一下,这里给出两种在unity中阴影的具体实现。
1.使用Untiy自带的实时阴影
unity自带的实时阴影锯齿比较严重,而且性能不高,一般只给主角使用,由于锯齿严重,可以把影子的质量调高,锯齿感就少了。有时使用unity引擎自带的阴影在game场景看不到,或者与scene场景看到的表现不一致,注意调整这几个地方。
1.光照的Inspector面板:阴影类型选择soft shadows
2.地面的CastShadows选为On,ReceiveShadows勾选上
3.Edit->PlaySetting->Quality 调整影子的质量 还有影子的距离等
特别是影子的距离,要根据需要调整,距离越长,需要绘制的东西越多,性能消耗也越大。
调整完以上的几处地方,基本能调出一个比较好的阴影方案。但是由于想减少锯齿,把影子的质量调高,也会导致一个问题,就是影子由于太清晰,显得不够真实,这个时候就需要添加模糊效果。在这里推荐一个比较好用的阴影插件: Next-Gen Soft-Shadows 将unitypackage导入,之后简单设置这几个地方,阴影模糊效果就出来了。
首先在编辑器扩展Tools下找到Psychose Interactive 在出来的面板下Install Directional libraries
然后给场景光照添加NGSS_Directiona 调节NGSS_GLOBAL_SOFTNESS来控制阴影的迷糊程度
l
这样基本模糊效果就出来了。截张效果图