VRML
VRML(Virtual Reality Modeling Language, 於西元1995年前被視為 Virtual Reality Markup Language) 為一種三維圖像(3-Dimensional Graphic) 的標準檔案格式,以標記語言(Markup Language) 的形式來紀錄向量圖形 (vetor graphics) 中多邊形 (plygons) 的頂點 (vetices) 及邊線 (edges)。所以若直接用文字編輯器開啟 VRML 檔案 (一般而言,檔案類型為 .wrl,一些經過 gzip 壓縮過的檔案類型是 .wrz) 看到的會是類似於結構語言,如下:
#VRML V2.0 utf8
WorldInfo {
title "Test Sphere"
}
DEF Sphere1 Shape {
appearance Appearance {
material DEF Red Material {
ambientIntensity 0.200
shininess 0.200
diffuseColor 1 0 0
}
}
geometry DEF GeoSphere1 Sphere {
radius 1.000
}
}
早期的 Web3D 開發者,可能會像筆者寫網頁用記事本一樣寫 VRML (筆者是死要面子 XD),也像早期用 C 寫 OpenGL 只能硬幹。大概也隨著科技日新月異 (老梗),開始有一些 3D 建模、動畫大尾軟體開始支援 VRML 的 Export,方便創作者在 3D 圖形軟體如: 3ds Max, Maya 內建模甚至製作完動畫後直接轉檔使用。
但是轉出成 .wrl 後,又有一個麻煩的事情,就是如何方便觀看轉出的 VRML 有無瑕疵 (這邊指的是貼圖跑位、模型在轉出運算上的失誤等等),總不能每次開 3ds Max 拉進來看 (電腦像鋼鐵人一樣猛的可以這麼作),所以就有了所謂 VRML Viewer 的產生。也因為 VRML 的主要用途便是於網頁上觀看三維圖像,這些 VRML Viewer 通常也是跟 Browser 如 Mozilla, Netscape, Internet Explorer 等等 bundle 在一起,有好有壞,不過的確省卻了要打開 3ds Max 來看 .wrl 檔的麻煩。
對於想以 VRML 來展示 3D Model 的 AR 玩家,建議安裝 VRML Viewer 於系統中,網路上常見的似乎是 Cosmo Player,支援 IE 及 Firefox (不過筆者沒用過)。另外,微軟也有所謂的 Microsoft VRML Viewer 可以裝。
VRML in ARToolKit
玩膩了內建範例、內建標誌(marker)、一大堆的內建之後。每個玩家一定都急著想要將自己建得模、或動畫等等放上 ARToolKit 玩弄一翻 (羞)。當然,也要順便來翻玩一下 ARToolKit 的 marker。恕筆者把這兩件事情列為此篇 VRML 實戰的主軸:
1. 更換自己的模型
- a. 請先將於 3DsMax 中匯出(Export) 自己的模型或動畫,副檔名選擇 *.WRL(VRML97)。
- 一些細節(材質, 面數) 選項[如下圖],請特別注貼圖放置的相對位置(Bitmap URL)
- 有些網友指出貼圖檔只能使用 GIF 格式,但筆者本身經驗是可使用 JPG 格式,請自行斟酌。
- 如果程式功力不錯的網友在 VRML 顯示上有大問題,可嘗試將新的 OpenVRML 引入此 ARToolKit 專案,畢竟 ARToolKit for Free 已經很久沒 Update 了
The figure is from Bruno Cipriano e Vasco Bila (MovLab) 2007.
- b. 切換目錄至 {ARToolKit}\bin\Data
- c. 以[記事本]或[文字編輯器]開啟"object_data_vrml" (無副檔名)
- d. 將 1 改為要讓系統認得的 marker 數量: (認出3個marker即填3)
#the number of patterns to be recognized
1
- e. 若有三個 marker 要系統辨識,則以下參數需針對每個marker個別定義一次。
- 第一行 VRML 為 dat 檔所在之相對路徑 (Wrl/bud_B.dat即{ARToolKit}\bin\Wrl\bud_B.dat)。此檔功用後面會詳述
- 第二行 Data/patt.hiro 意即系統在辨識出 Hiro marker 時,會顯示上述的 Model (蜜蜂轉呀轉的預設動畫)
- 第三行 80.0 應為預設 marker 大小 (待確認)
- 第四行 (待確認)
#pattern 1
VRML Wrl/bid_B.dat
Data/patt.hiro
80.0
0.0 0.0
- f. 確認執行檔未開啟(simpleVRML),將 object_data_vrml 存檔。
- ps. 關於 bud_B.dat 或自設 xxx.dat 之修改方式,如同上述請以[記事本]或[文字編輯器]開啟。
此檔之目的為記錄 VRML File (wrl) 檔名、所在位置。另外一方面可以針對此 Model 進行位移、旋轉、縮放的設定。好處在於若遇到 Model 在場景位置不正確、物件大小比例與實物不符等等問題時,不用將檔案丟到 3DSMax/MAYA 微調。
- 第一行 wrl 檔名
- 第二行 針對 Model 位移(Translation)
- 第三行 針對 Model 旋轉(Rotation)
- 第四行 針對 Model 縮放(Scale)
bud_B.wrl
0.0 0.0 0.0 # Translation
0.0 0.0 0.0 0.0 # Rotation
10.0 10.0 10.0 # Scale
- g. 存檔,執行範例程式。
2. 如何製作自己的 Marker
- a. 請先移動至 {ARToolKit}\bin (建議在DOS或命令提示字元底下運作)
- b. 找到 mk_patt.exe 並執行之,他會詢問相機參數檔,預設可直接按下 Enter
- c. 此時會開啟 Webcam,請將攝影範圍對準您自訂的 marker,盡量正面且不要將邊角落在攝影範圍外
- d. 直至出現以下紅綠框框住您所自訂的 marker
- e. 接著在視窗中點一下滑鼠,即可輸入檔名儲存自訂 marker
- f. 配合上述[更換自己的模型]章節提到的,我們可將 object_data_vrml 檔案中 "
Data/patt.hiro" 部分改為
自訂 marker 所儲存的檔名(ex. Data/patt.DK),即可使用。
[更多詳細實戰待補完]
REFERENCES
VRML, Wikipedia, http://en.wikipedia.org/w/index.php?title=VRML
ARToolKit官方網站, http://www.hitl.washington.edu/artoolkit/
其他相關文章
ARToolKit 實戰/教學(一) 建置篇