遮挡的实现¶
我们推荐在场景中使用遮罩功能,以提供更为逼真的AR效果。
静态遮罩生成¶
遮罩材质¶
静态遮罩原理是提前制作好产生遮罩作用的3D模型,并赋予透明遮挡材质,以此实现遮挡功能。
新建一个材质球,将材质球Shader设置为VR/SpatialMapping/Occlusion (unity自带)
将该材质球赋予制作好的遮罩3D模型上,基本的遮罩功能就实现了。
稠密模型生成遮罩¶
可以使用已生成的稠密场景模型作为遮罩
首先选中EasyAR.SpatialMap.Annotation
点击导出,等待导出结束
稠密场景模型体积较大,请耐心等待
将导出的OBJ模型文件放入Blender内进行自动减面,建议面数控制在10w~30w之间。
减面完成后再将减面后的模型拖回场景内,调整旋转角度,使其和稠密模型重合。
并赋予它遮罩材质(VR/SpatialMapping/Occlusion)
最后打包输出,就能实现全局场景的遮罩
手动生成遮罩¶
结合地图3D稠密模型,手动制作低模遮罩,将场景内的会发生穿插和透视的物体包裹住
举例:为1个大楼制作遮罩,可手动拖动缩放1个BOX模型包裹住该大楼
实时遮挡¶
实时遮挡部分能力我们建议使用AR Foundation提供的实时遮挡能力
请在Unity里下载5.1及以上版本的AR Foundation进行使用。
该功能会消耗部分手机性能,请酌情使用。
实时遮挡使用有距离限制,可以同时使用实时遮挡和静态遮挡。
使用说明¶
AR Foundation 遮挡说明文档
https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@5.1/manual/features/occlusion.html
使用须知¶
AR Foundation在使用默认遮挡功能时会出现仅能显示8米内物体的现象。
官方给出了解决方案,请进入下方链接,阅读Custom Shaders and Materials with Occlusion部分
实时人物遮挡¶
该功能仅支持苹果设备,安卓设备不支持。
详细说明请查看AR Foundation官方文档。
实时遮挡简易说明¶
在Main Camera控件中的添加AR Occlusion Manager脚本,可调整实时生成遮罩效果
物体遮罩分辨率(精度)
平滑遮罩
人体检测遮罩效果设置
遮罩效果偏好(物体or 人体)