既然可以編譯成功,
後續當然是了解一下AR的運作原理,
了解後就可以思考應用面的問題囉。
運作原理透過Google大神找到一篇還蠻經典的,簡單易懂,
我引用一張圖出來,應該很容易了解AR的運作方式,
看到這裡,
基於原始範例程式的架構,
以下的component如果可以換成我要的,
那就完成初步的測試:
(1) marker à 可以不要是 “天” 嗎?
(2) 3D object à 可以換成我要的3D object嗎?
(3) marker à 可以自訂marker嗎?
(1) 置換其他的marker:
回到simpleLite這個專案下的simpleLite.c source code
char *cparam_name = "Data/camera_para.dat";
char *vconf = "";
char *patt_name = "Data/patt.hiro"; à "Data/patt.sample1";
doc\patterns\Sample1 pattern.pdf à 印出marker
執行bin\simplelited.exe測試,哈,沒啥難度~
(2) 置換其他的3D object:
回到simpleVRML這個專案下的simpleVRML.c source code
const char *cparam_name = "Data/camera_para.dat";
char *vconf = "";
char objectDataFilename[] = "Data/object_data_vrml";
看了一下object_data_vrml 檔案內容
#the number of patterns to be recognized
2
#pattern 1
VRML Wrl/apple.dat
Data/patt.hiro
80.0
0.0 0.0
#pattern 2
VRML Wrl/snoman.dat
Data/patt.kanji
80.0
0.0 0.0
apple.dat
apple.WRL
0.0 0.0 25.0 # Translation
90.0 1.0 0.0 0.0 # Rotation
0.75 0.75 0.75 # Scale
看起來3D object 及marker都定義在上面這些關連的檔案內囉~
以下就來改一改測試一下囉:
2.1 simpleVRML.c
const char *cparam_name = "Data/camera_para.dat";
char *vconf = "";
char objectDataFilename[] = "Data/object_data2_vrml";
2.2 copy object_data_vrml to object_data2_vrml
object_data2_vrml 檔案內容
#the number of patterns to be recognized
2
#pattern 1
VRML Wrl/test.dat
Data/patt.hiro
80.0
0.0 0.0
#pattern 2
VRML Wrl/snoman.dat
Data/patt.kanji
80.0
0.0 0.0
test.dat
cylinder.wrl
0.0 0.0 50.0 # Translation
90.0 1.0 0.0 0.0 # Rotation
25 25 25 # Scale
cylinder.wrl 是網路上隨便找的3D模型
(3) 自訂marker:
doc\patterns\ Blank pattern.png是基本的marker檔,你的識別item必須在以下的圖例中間,超過中間的部份會被忽略喔。來試看看吧~
有個mk_patt專案,這個可以訓練自己的marker喔
執行bin\mk_pattd.exe
![]() |
帶入default camera參數 |
![]() |
輸出大小,我選了640 x 480 |
![]() |
我勾選了垂直相反, 不然影像是顛倒的(這部份我沒深入去探討原因) |
![]() |
哈~找了之前列印好的Hiro pattern, 再加上10元硬幣,確定後在Camera畫面上click一下 |
![]() |
輸入要儲存的檔名,這個marker檔就產生囉。 |
趕快來測試看看:
把剛剛產生的patt.coin copy to bin\data 目錄內,
修改object_data2_vrml 檔案內容
#the number of patterns to be recognized
1
#pattern 1
VRML Wrl/snoman.dat
Data/patt.coin
80.0
0.0 0.0
執行simpleVRMLd.exe
![]() |
底下有10元硬幣的marker就可以顯示3D object |
![]() |
10元硬幣移開的marker就無法顯示3D object囉~ |
可以請問一下,要是我用網上下載回來的artoolkit2.65vrml
回覆刪除在自製marker時卻沒有video Catpure的部份
結果出來是上下顛倒的,
怎樣才可以找到(垂直相反的)選項唷?