The SpaceWalker Walkthrough System for

Unrestricted Three-Dimensional Polygon Environments

Student: 雷永威 Advisor: 歐陽明

國立台灣大學資訊工程研究所

中文提要

互動式建築物漫遊(interactive building walkthrough)技術模擬使用者在複雜的三維空間中行走時的感受。互動式漫遊的特色在於此項技術能以人類直覺的方式來表達資料,並且提供一個直覺式的使用者介面讓使用者觀察、檢視、探索資料所隱藏的含意。虛擬實境研究的先驅Frederic P. Brooks Jr.曾就互動式漫遊技術提出四個研究的方向:更快(faster)、更美(prettier)、更順手(handier)、及更實際(realer)

因為國立台灣大學資訊工程學系新系館的建造,我們決定製作一個以一般性多邊形環境為對象的建築物漫遊系統:SpaceWalker建築物漫遊系統。在SpaceWalker中,使用者不只可以自由的在新系館的電腦模型內走動,而且可以開/關門、開/關燈。本論文描述SpaceWalker的設計與實作,其系統規格如下:

模型 雖然新系館目前(1996)只建了一部份,我們計畫建立新系館完整五樓的電腦模型,而其結構將完全依照新系館的建築藍圖。

互動性 在SpaceWalker中使用者可以利用滑鼠(mouse)或鍵盤(keyboard)自由地行走並朝任意方向觀看。使用者也可以戴上頭戴式顯像器(head-mounted display, HMD),登上走步機(treadmill)以經驗完全融入(immersive)建築物中的感受。

感受度 使用者在螢幕上所看到的是以葛氏(Gouraud)著色法著色的多邊形,並且在640x480的解析度下可以達到每秒20個畫面。

在製作SpaceWalker時,第一個挑戰就是:有趣且詳細的建築物模型是很難建立的。而另一個更嚴重的問題就是程式必須面對大量的多邊形資料而維持輸出畫面速度在互動的程度。舉例來說,我們所使用的模型最後使用了40,312個三角形,然而我們發展的平台每秒只能處理155K個三角形。因此,一個粗略的估算可以得出如果直接繪出所有的三角形,則最後輸出畫面的速度不會超過四個。

SpaceWalker的執行步驟分成三個階段:建立模型階段(modeling phase)、前置計算階段(precomputation phase)及執行漫遊階段(walkthrough phase)

建立模型階段,我們使用商業軟體AutoCAD建立新系館的電腦模型。類似計算機程式中的除錯觀念,我們發展了一些互動式的除錯工具以確定系館模型的正確性。同時我們也發展一個編輯特效參數的工具。目前我們已建立新系館五樓主要結構的電腦繪圖模型。總共使用了2,773個多邊形,稍後在熱輻射著色(radiosity)時則再切成40,312個三角形。

前置計算階段,和眼睛位置無關的數值可以事先計算,以加快最後顯示的速度。第一部份為平面之間的光線反射,因為我們利用熱幅射法(radiosity)來模擬築物室內的光照情況,所以可以預先計算。

第二個部份為可見性(visibility)。因為大部份的建築物都是細密阻隔(densely occluded),在建築物內部行走時,通常我們只會看到建築物的一小部份,這是因為牆壁擋住我們大部份的視線。如果我們可以把這些會看到的部份計算出來,那麼就可以只把這些部份輸入繪圖流程(rendering pipeline)。基於以上的推論,John M. Airey提出潛在可見集(potentially visible set, PVS)的觀念,並由Seth J. Teller發展出具理論基礎的演算法。不過Teller的演算法雖然是理論上可行的,在實作上只針對正向(axis aligned,簡稱axial)的模型提出說明,而對一般性的多邊形環境沒有提出說明。

本論文提出一個新的演算法,稱為切削運算(carving operation);如同雕刻師傅處理雕像的方式,切削運算先將模型非正向(non-axial)的部份切除,接下來的可見性前置處理(visibility preprocessing)即針對已切削的模型來處理。切削運算的特性在於找出模型非正向的部份並加以切削的動作是自動的,完全不需要人為的介入。

執行漫遊階段,系統模擬使用者在建築物內行走的感官經驗。SpaceWalker定義三種使用者介面型態以提供不同程度的融入感:觀景窗模式(through-the-window model)、輪椅模式(wheelchair model)及走步機模式(treadmill model)。此外,為連接虛擬實境器材,我們設計一個以主從架構(client-server)為基礎並利用共享記憶體(shared memory)的程式模式。SpaceWalker可以在640x480的解析度下達到平均每秒23.7個畫面的速度(SGI Indigo Extreme graphics workstation)