今年十月初,Qualcomm 釋出了 QCAR[1][5] ── 一個運行於 Android 平台上的增擬實境 (AR) SDK,提供幾個基本(?)的 AR 元件,讓開發者可以跳過影像處理,快速、簡單的在 Android 平台上開發各式包含的 AR 功能應用程式。今天終於有點時間,把 QCAR SDK 抓了下來,也跑了跑 sample 程式。因為還玩的很淺,原本不想寫 blog 的,但發現[2]網路上跟 QCAR 有關的中文文章實在少的可憐,還是寫一篇來簡單記錄一下。
QCAR 與 Layer[3]、WikiTude[4] 等 location based 的 AR 引擎有所不同。這類的 AR 系統利用 GPS 或 Wifi 取得使用者在地球上的位置,再搭配由電子羅盤取得的使用者面向,在螢幕上呈現使用者周遭的 POI 距離以及相對方位。Layers 提供了 API ,讓開發者在其程式中顯示自己設計的資料,而 WikiTude 則是進一部的提供了 SDK,讓開發者可以在自己的程式中加入 location based 的 AR 功能。(對 AR 並沒有任何研究,location based AR 這個名字也是胡亂取的:p)
QCAR 系統所提供的 AR 功能,則是藉由攝影機辨認現實生活中的平面 pattern 或材質,並準確的在平面上方(或其他相對方向、位置)的空間繪製 3D 的物件。目前 QCAR 支援了兩個類型的追蹤:Image Target 以及 Frame Marker 並可以搭配 Virtual Button 讓生活中的物品上出現可以用手(或其他物件)使用的按鈕。
下圖就是最基本 Image Target 追蹤,可以看出紙張放置的角度改變,上方的 Utah teapot 也會跟著改變。Image Target 追蹤的實作流程也很有趣,開發者要先將想追蹤的圖片上傳至網站由 Qualcomm 幫你從圖檔抓出 features,接著將 features 從網站下載下來,搭配 SDK 使用。