ARToolKit
ARToolKit 是一個 C/C++ 語言編寫的函式庫,透過此函式庫可以讓我們輕鬆的編寫擴增實境應用程式。擴增實境 (Augmented Reality) 是將電腦虛擬的影像覆蓋到真實世界畫面中,這個技術在工業、教育、藝術方面都存在著極大的前景。
對於開發一個 AR 程式來說,最困難的部分在於即時 (real-time) 的將虛擬影像覆蓋到使用者的視覺,並且和真實世界中的物件精確對齊。ARToolKit 以電腦圖學計算相機 (Camera) 和標記 (Marker) 之間的相對位置,使開發者能夠將他們的虛擬物件依據標記在真實環境上的相關資訊覆蓋到真實環境中。ARToolKit 提供快速和準確的標記追蹤 (Marker Tracing),能使開發者快速的開發出許多有趣的 AR 程式。
Intro
本篇包含了 ARToolKit 的概略介紹,包括如何安裝和如何在程式中使用它的各種功能。ARToolKit 附帶了一些簡單範例程式,它們可以讓開發者學習如何上手。ARToolKit 包含了所有函式庫的完整原始碼,開發者可以根據平臺的不同來調整,也可以使用自己的追蹤演算法來取代。
ARToolKit 目前支援以下作業系統:
- SGI IRIX
- PC Linux
- Mac OS X
- PC Windows (95/98/NT/2000/XP)
Preset
此篇以 Windows 作業系統為例
必要條件 | 建議事項 |
開發環境 | 官方提及目前 ARToolKit 確定支援 Microsoft Visual Studio 6 及 .NET 2003 (我本身使用後者),也有同學使用 .NET 2005 可建置成功。
官方文章中提及,可使用免費的 IDE 建置成功。(例如 Cygwin) |
DSVideoLib-0.0.8b-win32 | Windows 環境中,DSVideoLib 主要是拿來與視訊設備溝通。可在 ARToolKit 官方下載處下載到。 |
GLUT |
即是 OpenGL Utility Toolkit 縮寫,是一套免費的 OpenGL 工具函式庫,在 ARToolKit 中的用途猜測是拿來處理電腦圖學部分。分為 Runtime 及 SDK。 由於是必要環境,所以請先檢查系統中是否有該 Library
而 SDK 則是位於 Visual C++的相對目錄下:
|
DirectX Runtime | 常常電玩遊戲都要用到的 DirectX,官方建議安裝 9.0b 以後之版本。 PS. Windows XP 預設安裝時就已經內建。 |
影像輸入裝置 | 確定您的視訊裝置 Driver 有安裝完備,可正常運作。 |
OpenVRML-0.14.3-win32 (非必備) |
一種描述三維物件的格式。 依照個人經驗,在 3DMax/Maya 中建模,可以轉存 VRML 檔 (包含貼圖),但檔案有點肥,而且某些情況的貼圖容易跑掉。 ARToolKit 中對於三維呈現分為兩種模式:
|
[ 必要環境懶人包下載 @ NTU ]
Build
準備好上述的系統環境條件後,你可以開始建置 ARToolKit 了:
1. 解壓縮 ARToolKit 壓縮檔到一個合適的位置。這個路徑在下述步驟中將以 {ARToolKit} 表示。
2. 解壓縮 DSVideoLib 壓縮檔到 {ARToolKit}。請檢查資料夾名稱是否正確為 "DSVL"。
3. 從 {ARToolKit}\DSVL\bin 複製 DSVL.dll 及 DSVLd.dll 到 {ARToolKit}\bin。
4. 複製 glut32.dll 至 C:\Windows\system\ 資料夾中,並將 glut32.lib 和 glut.h 複製到 Visual Studio 平台下的適當位置。
* glut.h => 複製到 [Drive:]\[Visual Studio .Net 安裝資料夾]\Vc7\include\GL\(可能需要自行建立GL資料夾)
* glut32.lib => 複製到 [Drive:]\[Visual Studio .Net 安裝資料夾]\Vc7\lib\
5. 執行 {ARToolKit}\Configure.win32.bat 以建置 include/AR/config.h。
6. 打開 ARToolKit.sln (VS.NET) 或 ARToolkit.dsw (VS6)。
7. 編譯 (或建置) 該專案。
若您選擇使用 OpenVRML 則需要以下步驟: (範例為:libARvrml 和 simpleVRML)
8. 解壓縮 OpenVRML 到 {ARToolKit}。
9. 從 {ARToolKit}\OpenVRML\bin 複製 js32.dll 到 {ARToolKit}\bin。
10. 在 Visual Studio 中,在最上排選項中,選[建置]→[組態管理員],勾選 (預設是未啟用) libARvrml 和 simpleVRML 專案,然後建置專案。
Example
- Intro
根據 ARToolKit 版本的不同,你可以選擇 simple 或 simpleTest 作為第一個測試範例。在 {ARToolKit}\bin 下,有已經編譯成執行檔的所有範例。
測試範例時,需要相對應的標記。可以到 {ARToolKit}\patterns 中列印 PDF。 - Run
點 bin 目錄下之執行檔點兩下執行後,會跳出 DOS 視窗,並跳出視訊設備設定對話框。
在對話框中,可選擇視訊設備的解析度大小,並注意編碼器的不同 (RGB模式被認為較有效率)。有些視訊設備可選擇幀幅數 (Frame Rate),此多寡也會影響效能及視覺上的延遲。 - Output
按下確定之後,想必視訊設備所拍攝的畫面已經呈現在螢幕上了。我們可以拿由 hiroPatt.pdf 印出來的 HIRO 字樣標記,放置到視訊設備的擷取範圍內。
一切順利的話,將看到以下畫面 (OpenGL 繪出的方塊坐落於標記上方):
接著可以移動或旋轉標記,觀看互動效果。(但別遮到標記喔 :D)
按下 ESC 鍵可跳出程式,另外官方提及,按下 D 鍵可瀏覽二階化且設有門檻值後的黑白畫面 (新版好像沒有此功能)。
備註:門檻值 (Threshold Value) 可在範例原始碼中設定,預設是 100 (介於 0~255)。
運作原理
[ 待補 ]
相機校正
[ 待補 ]
REFERENCES
[預備]及[建置]部分翻譯自ARToolKit官方網站,部分文字摘自網路資源
ARToolKit官方網站, http://www.hitl.washington.edu/artoolkit/
常見問題 FAQ
1. 視訊影像上下顛倒?
請至 {ARToolKit}\bin\example\ 下,找到您所撰寫的專案,
找到此行:
char *vconf = "Data\\WDM_camera_flipV.xml";
如果影像顛倒,您可以改成 WDM_camera.xml,或是找到該 xml 檔案,進行編輯。
其他相關文章
ARToolKit 實戰/教學(二) VRML篇