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