支持反射探针

反射探针是用来模拟反射周边物体的光照信息的一种解决方案,让物体受周围物体的光照或材质影响的一种模拟光照效果。简单来说,就是为了在不同的区域,可以得到不同的反射而实现的区域反射功能。

LayaAir PBR材质中的IBL环境反射是基于场景的,在没有探针之前,所有PBR材质物体使用的反射立方体贴图(textureCube)都来自于场景设置的反射立方体贴图,无法根据不同区域产生不同反射效果。

android 开源3d模型加载框架 安卓3d插件_贴图

在LayaAir 2.9.0beta版开始,开发者可以根据不同的区域来烘培不同的反射天空盒,以此来得到更多更丰富的反射效果,并且反射探针的BoxProject反射会在一些情况下增加反射的真实度,可以得到更加好的场景效果。

android 开源3d模型加载框架 安卓3d插件_安卓3d游戏插件_02

在使用的时候,开发者需要使用对应引擎版本的LayaAir Unity导出插件(例如LayaAir 2.9.0beta),然后去Unity需要使用反射探针的地方,创建一个空节点,在空节点的Inspector中增加一个ReflectionProb的组件,如下图所示:

android 开源3d模型加载框架 安卓3d插件_开发者_03

在LayaAir引擎中,反射探针的Type只支持Bake模式与Custom模式。另外,由于图片槽数对于小游戏来说非常的紧张,LayaAir引擎也没有做反射探针的blend(混合模式)支持,只是简单的simple模式和off模式。除了这两点,其它的Unity反射探针属性,LayaAir引擎中都是支持的。如下图所示,红框内都是支持导出使用的属性。

android 开源3d模型加载框架 安卓3d插件_安卓3d游戏插件_04


一些常规的属性使用就不在这里介绍了,开发者可以查看相关文档。重点说一下Box Projection(是否支持盒式偏移反射),该选项允许在距探针有限距离处创建反射立方体贴图,从而允许对象根据它们与立方体贴图墙壁的距离,显示不同大小的反射。周围立方体贴图的大小由探针效果区域决定。例如,如果一个探针在房间内部反射,应使设置的大小与房间的尺寸匹配。 开启和关闭Box Projection的效果如下图所示。

android 开源3d模型加载框架 安卓3d插件_android 开源3d模型加载框架_05


还 需要注意的是,反射探针和全局光照一样,只会反射静态的物体。所以在Unity中使用反射探针时候,要先把需要反射的物体设置成静态物体。 操作很简单,就是点一下 Refl ection Prob e面板下面的Bake按钮就可以。或者 在Unity的 菜单栏Window-->Rendering-->Lighting Settings打开Lighting面板,点击最下方的Generate Lighting 按钮 。然后直接导出就好了。

当前的版本,使用了反射探针的物体不能进行静态合并以及instance动态合并,未来的引擎版本会优化。

 批量导出场景 


2.9.0以前的LayaAir插件每次只能导出一个场景,2.9.0beta版开始支持批量导出场景,可以加快多场景的导出效率。 该功能在其它设置中,如下图所示,勾选批量导出场景,可使用该功能。

android 开源3d模型加载框架 安卓3d插件_贴图_06


需要提醒的是,批量导出的是Unity层级视图(Hierarchy)下的场景,如果需要导出,需要将场景添加到Hierarchy下。

 LayaAir专属3D粒子编辑面板 


用过LayaAir引擎Unity导出插件的都知道,LayaAir引擎虽然支持在Unity中编辑并导出,但是由于LayaAir引擎并非支持Unity中的所有属性,所以当不熟悉LayaAir引擎的导出规则时,可能会由于在Unity面板中使用了LayaAir引擎不支持导出的属性功能,从而使得运行效果与Unity中编辑的效果不一致。尤其是3D粒子这种由美术或者技术美术频繁调整的功能。很容易一不留神就使用了不支持的属性,导致要反复重调输出,影响开发效率。 因此,2.9.0beta版开始,我们在插件中推出LayaAir自己的3D粒子编辑面板,选择使用LayaAir面板后,编辑面板中仅有LayaAir引擎支持的功能属性。美术在调整的时候再也会由于不小心或者不熟悉规则而出错了。 下图是3D粒子编辑面板界面效果图。

android 开源3d模型加载框架 安卓3d插件_3D_07


未来,还会推出更多LayaAir功能面板来替换Unity功能界面。提升会员功能的易用性。

android 开源3d模型加载框架 安卓3d插件_3D_08