• 沒有找到結果。

基於 C 語言之即時裸視立體顯像操控程式

第三章 柱狀透鏡式之即時裸視立體顯像操控程式

3.3 基於 C 語言之即時裸視立體顯像操控程式

下頁圖 3.9 為第二部份系統架構圖,此部分為 C 語言端虛擬 3D 模型操控程 式。根據我們在第三章一開始所提到的幾何基礎(geometric-based)3D 影像,是靠 電腦的運算與顯示卡的 3D 圖形處理器(GPU)密切合作的成果,而此方式就是需 要 DirectX 中的 Direct3D 應用編程介面來銜接 GPU 與電腦程式,經由此應用編 程介面我們可以再透過一個 3D 驅動程式(本論文選用愛爾得(i-Art)公司的即時多 視角影像合成驅動程式,auto 3D driver),將一個 3D 影像的多視角影像即時彩現 (rendering)出來,然後再合成一個柱狀透鏡式裸視 3D 立體顯示器所能顯示的 3D 立體影像。所以本論文將 MATLAB 測詴帄台與 C 語言軟體連結,其主要意義在

於 Direct3D 應用編程介面的開發環境上只能 C 語言帄台搭配,所以我們才必頇 將 MATLAB 與 C 語言軟體連結。

圖 3.9 第二部分系統流程圖。

C 語言端虛擬 3D 模型操控程式,是以 C 語言軟體(Visual Studio 2010)配合 Direct3D(主要)與 OpenGL(較少)函式庫,並嵌入 MATLAB 匯出的 DLL 檔寫成的 操控程式,並將此程式分成三種視窗(視窗 a、視窗 b 和視窗 c)、兩種鍵盤操作以 及兩種滑鼠操作。因為本論文希望主要畫面影像處理、3D 繪圖與立體建模都是 在 MATLAB 端程式中做測詴並完成的,所以 C 語言端虛擬 3D 模型操控程式可 看成做為 MATLAB 端的操控程式與即時多視角影像合成驅動程式連接的帄台,

因此視窗設計上力求簡易但又不能夠喪失 MATLAB 端測詴程式的各種功能,所 以在本論文實驗將此部分程式設計全由滑鼠來做互動式操控,省去了許多按鍵。

程式視窗為下頁圖 3.10,接下來將以圖 3.10 做程式說明和介紹。

圖 3.10 基於 C 語言之即時裸視立體顯像操控程式設計圖。

1. 視窗共三種:

視窗 a: 位於程式右方。程式中建立的虛擬 3D 模型完整模型會在此視窗中 顯示出來(包含的東西如圖 3.10 所示),其中直接執行程式時,橫切 面層也會直接顯示在此視窗,藉由鍵盤上下鍵操作。

視窗 b: 位於程式左下方。為長方形的視窗,功能做為顯示三個物件之用,

但是程式中並不會特別框出來,當我們欲個別觀看建立的一個虛擬 3D 大物件和兩個虛擬 3D 小物件時,這三個物件會由上而下將之分 別顯示在此視窗裡,可做個別觀看。

視窗 a 視窗 c 視窗 b

視窗 c: 位於程式左上方。為顯示所選擇的橫切面層與虛擬 3D 模型的交點連 線,意即為顯式輪廓線。

2. 鍵盤操作共兩種:

上鍵 : 當我們按下鍵盤中上下左右鍵的上鍵時,橫切面層會往上做移動,並 且將切到帄面的輪廓線顯示在視窗 c 中

下鍵 : 當我們按下鍵盤中上下左右鍵的下鍵時,橫切面層會往下做移動,並 且將切到帄面的輪廓線顯示在視窗 c 中

3. 滑鼠操作共兩種:

滑鼠左鍵 : 當我們移動滑鼠至視窗 a 中三個虛擬 3D 物件的任何一個我們想 觀看的物件時,按下滑鼠的左鍵,就可以觸發點選物鍵功能,點 擊到的物件會在視窗 a 中消失,並且出現在視窗 b,以方便我們 做個別觀看。

滑鼠右鍵 : 當我們將滑鼠指標移動至視窗 a 或視窗 b 上的任何物件上,按住 滑鼠右鍵,並且拉擊,就能夠啟動視角 360旋轉功能,提供使 用者選擇想觀看的視角。