[AR]Vumark(下一代条形码)
VuMark
准备知识
Vumark的说明: https://library.vuforia.com/articles/Training/VuMark
https://library.vuforia.com/articles/Solution/Working-with-VuMarks-in-Unity
SVG的制作工具:AI(Adobe Illustrator)
SVG查看工具:IE9以上、Chrome、Firefox类的浏览器,或者其它看图软件,以下是在AI中查看SVG文件,可以看到vumark的属性信息。
建议先查看Vuforia自带的Vumark Demo。
操作环境
Vuforia 6.0.112
Unity3D 5.3.6f1
Windows 7 x64
操作步骤
1、登录vuforia的后台:https://developer.vuforia.com,创建一个Database,类型为 Vumark
2、点击Add Target ,上传一个SVG文件,此svg文件带有标识点,由美术根据相关制作标准制作
3、下载database ( UnityPackage 文件),如果你是Android和IOS,请选择其它格式。
4、新建一个Unity工程,导入vuforia的SDK,将下载好的unitypackage文件导入到unity中
获取VuMark图
接下来要做的事情,就是扫描识别图,进行识别,那么识别图从那儿获取呢?
在vuforia的后台中,在Target 的右侧有个 Generate VuMark,它可以通过这张svg图片文件,生成N多张VuMark图片。
点击“Generate VuMark”,在弹出的窗口中,输入需要生成的ID(100),选择图片的格式,点击 Download
点击“Generate VuMark”,在弹出的窗口中,输入需要生成的ID(50),选择图片的格式,点击 Download
这样就得到了ID=100和ID=50的两张VuMark图,这两张图就可以拿来进行识别了。
经测试识别最大值和最小值,可正确地识别,打印结果如下:
New VuMark: 999999999999
New VuMark: 0
最多生成图片数量
从上面的图中可知,ID Length =40,约是2的40次方,范围在:0 ~ 999 999 999 999,也就是可以生成 999999999999 +1 张Vumark图。
以下是生成图片的ID,尝试输入不在范围内的值。
输入负数
输入超出最大值
识别成功和丢失
从Example中,可以看到丢失和识别成功的事件写在以下两个文件中:
VuMarkHandler.cs 绑定在单独的GameObject上
VuMarkEventHandler.cs 绑定在VuMark上
这两个脚本日后研究完善并做更加详细地注释:https://github.com/zhaoqingqing/blog_samplecode/tree/master/ar-vr-mr/vuforia/vumark
相关FQ
1、是否可以同时Active多个database?
在目前的6.0.112版本中,我的测试,不可以同时Load 多个database(包括两个)
与FrameMarker比较
FrameMarker
FrameMarker特征图是由高通设计的,如上图所示,ID从 0~511,对应着512张图片,ID=1,ID=2 两张图像之间的差异就是最外圈的黑白点之间的差异。
Vumark
1、Vumark的特征图是可以自定义的,可以不是黑白点了。
2、最大ID在数量上提升了N倍,0 ~ 999 999 999 999