首页 > 代码库 > [AR]Vumark(下一代条形码)

[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

[AR]Vumark(下一代条形码)