程序丨在AR的应用场景中,如何识别3D模型?
AR应用场景中识别3D物体,大多使用基于特征点匹配的方案。
今天分享一下用Vufuria来扫描识别3D物体。
01
准备工作
先下载Vufuria给我们提供的Scanner工具,下载下的包里有一个apk和一个标定图片,我们需要把这个把这个图片按原比例打印出来。
Vufuria提供的标定图:
02
扫描物体
把要扫描的物体放到标定纸的右上角灰色格子区域,打开扫描App开始扫描。
识别出标定纸后会在平面上出现 红绿蓝 三个坐标轴,如上图所示。
点击开始扫描,就会看到一些对物体提取出的特征点(上图绿色小点)。
绕着物体扫描完一圈,对一些已经提取完成的面会入上图绿色的罩子,绿色全部覆盖后整个物体的所有面就都提取完毕了。当然你也可以只识别其中某个角度下的,根据应用需求而定。
03
添加Target
扫描结束后,可以把我们的扫描结果保存到手机本地,然后需要将这个文件导入到Vufuria的开发者账号下。在TargetManager页签下增加一个Target,Type 选择 3D Object,File项将我们扫描的od文件上传上去,取一个Name就OK了。
04
导入Unity
首先将这个Target下载下来,选择开发平台为 Unity Editor,如下图:
在Unity中添加Vuforia对象:GameObject/Vuforia/3D Scan。如下图:
导入后Hierarchy中增加一个ObjectTarget,点击选中,在其Object Target列表中会看到我们前面从Vufuria下载导入的Target对象,选中后效果如图:
然后导入我们在识别完物体后需要展示的模型:Mario
挂载到ObjectTarget下,如下图结构:
05
真机测试
剩下就是打包出apk在真机上测试一下,马里奥出现了,说明我们的酸奶已经识别出来了。
这样就大功告成了。
另外Vufuria还提供了一个直接识别3D模型文件的工具,有兴趣的同学可以自己下载下来体验一下,这里就不再介绍了。
↓↓↓点击阅读原文,了解更多。