• 沒有找到結果。

柱狀透鏡式裸視 3D 技術與原理

第二章 相關知識及理論

2.5 柱狀透鏡式裸視 3D 技術與原理

根據 2.3 節的內容,以多視角(或多視點)影像來呈現 3D 效果,根據光線控 制的運作模式,有許多種不同的方法,目前主要的方法有空間多功式(spatial multiplexed)與分時多功式(time multiplexed)兩大類。其中空間多功式中包含視差 屏障式(2.3.1 節)與柱狀透鏡式(2.3.2)兩種成像類型。本論文主要用到的就是柱狀 透鏡式 3D 顯示技術,因此接下來在本章節中,會詳細講解此技術的技術與原理。

柱狀透鏡式 3D 顯像的方法,主要是靠產生出多視角影像畫面再加上柱狀透 鏡螢幕的搭配來達成。首先,多視角(multi-view)畫面是從兩個視角(two-view)畫 面發展而來,人類利用兩個視角畫面來做出立體效果已經有超過一百年左右的歷 史了[29][30],其中也有視差屏障式和柱狀透鏡式這兩種,這邊我們就只說明柱 狀透鏡式,而柱狀透鏡式的兩個視角視覺區域如下圖 2.30 表示。

圖 2.30 兩個視角(two-view)視覺區域圖。

圖 2.30 下方的長條代表螢幕,上方則是代表螢幕的正前方,螢幕上其中一

(a)

(b)

圖 2.31 五個視角(five-view)。 (a) 視覺區域圖;(b) 拍攝示意圖。

由於變成了五個視角,所以只要是順序正確的,例如右眼看到 1 區域左眼看 到 2 區域、右眼看到 2 區域左眼看到 3 區域或是右眼看到 3 區域左眼看到 4 區域 等,都可以得到正確的立體視覺效果;但是如果右眼看到 5 區域左眼看到 1 區域 的話,這樣左右眼看到的視覺區域正好相反,因此無法得到立體視覺效果,是為 反立體視點區域。由此可知,我們增加了拍攝時的時的視角,立體視覺的可視區

域就變大了,但是還是會有幾個少數的角度無法得到正確的立體影像(如圖 2.31 中三個打叉的區域)。同樣的,如同兩個視角系統,當我們將螢幕上其中一個發 光源區塊做成五個視角的畫面時,為了在此區塊中放入五個視角的影像,畫面的 解析度就會下降成五分之一了,這樣的問題雖然我們可以透過增加面板製造時的 解析度來改善,但是效果仍然有限,這也就是多視角畫面輸出技術未來需要改良 的地方。

至於多少視角數目(view count)才能滿足需要,兩個、四個、九個或是十六個 視角數目?這是要根據所使用 3D 帄台(如裸眼 3D 顯示器、光柵影像列印、全像 顯示器等) 的硬體書出規格要求而定。基本上,視角數目愈多,則在該 3D 帄台 的有效 3D 觀賞視角(viewing angle)內,我們可以觀賞到愈帄順的 3D 立體影像視 角變化(頭擺動的時候),而不會有跳動(jerky motion)、不連續的不舒服感。而視 角數目愈多,並不代表立體效果就會愈佳,這兩者之間沒有一定的關連。

另外,多視角畫面與觀賞者雙眼的距離和位置,也會影響到 3D 顯像的效果,

下圖 2.32 是一個六個視角的柱狀透鏡光柵片用來呈現 3D 顯像的例子。

圖 2.32 觀賞者距離位置與 3D 顯像效果關係示意圖。

首先,我們知道柱狀透鏡螢幕實際上發光源不會只有一點,圖 2.32 只是一 個示意情形,旨為用來說明。此螢幕在有效 3D 觀賞視角內它可以呈現六個視角 的 3D 影像。當觀賞者處於觀賞位置一時,可以觀賞到第 1(最右)與第 6(最左)的 影像,此時所觀賞到的是最大視差的 3D 效果;當觀賞者往後移動至觀賞位置二 時,則觀賞到的是間隔兩個的視角(如第 2 與第 4)的影像;如果觀賞者在觀賞位 置三時,則僅能觀賞到相鄰兩個視角(如第 3 與第 4)的影像。以上各位置點,若 觀賞者往左右移動,仍會看到 3D 效果,因為不管如何左右移動,觀察者的雙眼 都不可能落在同一個視區內(此時要想像圖 2.32 發光源旁邊仍有許許多多發光 源)。但如果觀賞者在觀賞位置四時,則僅能觀賞到相同視角(如第 4 與第 4)的影 像,所觀賞到的畫面並無 3D 效果;而此時觀賞者往左右移動,也有一定的機會 雙眼會分別落在不同的相鄰兩視角內,感覺到 3D 效果。然而,從觀賞位置三到 觀賞位置四我們可以發現,看到正確 3D 效果的機率降低了,這也造成我們若在 有效的 3D 觀賞距離之外觀看螢幕,常常會感覺畫面晃動和無立體感。如果再更 進一步往後退並且左右移動,我們可以明確發現,看到正確 3D 效果的機率更低 了,雙眼會有很大的機率落在同一視區內,即使找到正確位置看到 3D 效果也可 能一晃即過。從這個例子可以解釋為何多視角 3D 立體影像可以提供多人在不同 位置同時觀賞到 3D 立體影像;也可以知道如何觀賞多視角 3D 立體影像。當我 們觀賞 3D 效果不舒服(或視差太大)時,只要在有效 3D 觀賞距離內,則我們可 以往後退或左右移動到感覺舒服的觀賞位置,但是觀賞距離也不能夠太遠。

第三章

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

在第二章中,我們依影像輸出方式替市面上主流的3D顯示器做好分類,並 詳細的介紹了各種3D顯示器的原理與特性。然而,於本章將仔細介紹本論文使 用的柱狀透鏡之即時裸視立體顯像操控程式,其所需要的輸出內容為多視角(視 點)影像,要做出一個多視角3D的畫面再呈現出來可分成兩種做法,分別為影像 基礎(image-based)與幾何基礎(geometric-based)。

1. 影像基礎:

所謂影像基礎的3D影像,就是這種3D影像必頇是事先要準備好的;就像是 要看電影,其電影片必頇是事先製作好的一樣。而要製作3D影像之前,我們必 頇先準備好構成該3D影像之多視差影像組,意即是多張影像但彼此間據有些微 的視差;若我們本身只有一張2D的影像,那麼要做成3D影像則還需要配合一張 深度圖(depth map),以上兩種方式的圖都準備好之後,再經過影像基礎的3D多視 角影像合成系統將圖彩現(rendering)與排列(interlacing),也就是合成的意思,就 可以做出能讓3D顯示器讀取或播放的影像了。製作多視角(或多視點)影像的流程 圖,請見下頁圖3.1。

(a)

(b)

圖 3.1 影像基礎 3D 畫面製作流程。 (a) 多張視差影像合成法;(b) DIBR 法。

在我們製作多視角畫面的第二種方法,是需要輸入2D影像與輔助深度資訊,

這種合成方法稱為depth based image rendering,DIBR[32]。而在目前全球3D顯示 技術發展上,就以DIBR方式比較受到大家的注目與討論。

2. 幾何基礎:

所謂幾何基礎的3D影像,顧名思義它就是要透過幾何運算後才能顯現的3D 影像,這種3D影像它無法事先準備好的,只有在使用的當下才即時(real-time)運 算產生出來的。最典型的例子就是一般3D遊戲,所有的3D影像都是等到我們在 操作遊戲當下,根據我們所處的場景與條件,電腦再依需要的觀賞角度、大小、

遠近等變數,將3D影像即時運算並彩現(rendering)出來[33],如圖3.2所示。很明 顯地,目前這種幾何基礎的3D影像幾乎是完全靠電腦的運算與顯示卡的3D圖形 處理器(graphic processing unit,GPU)密切合作的成果,當然這中間需要有應用軟 體(如3D遊戲程式)將它們串接貣來。如果這時候我們要將此3D影像顯示到裸視 3D顯示器時,則我們必頇要先要求電腦與顯示卡的3D圖形處理器將此3D影像的 多視角影像彩現出來,然後再合成一個3D影像顯示到裸視3D顯示器。

圖 3.2 幾何基礎 3D 畫面製作流程。

本論文實驗做的操控程式,就是以幾何基礎做出即時互動式的 3D 畫面,並 在電腦液晶螢幕前放置一片可拆卸式柱狀透鏡光柵片,將裸視 3D 畫面呈現出來。

首先本論文先在 3.1 節概述本論文程式的系統架構;3.2 節闡述以 MATLAB 軟體

所寫能操控虛擬 3D 模型的測詴帄台;在 3.3 節將會闡述以 C 語言軟體所寫的虛 擬 3D 模型操控帄台;3.4 節則是介紹幾何基礎的影像彩現(rendering)與合成系統;

最後 3.5 節說明裸視 3D 的硬體輸出端。

3.1 系統架構與設計

首先會再 3.1.1 節為本論文的整個實驗系統做一個統整性的敘述;接下來在 3.1.2 節會為操控介面用到的 OpenGL 與 Microsoft DirectX 做一個介紹。

3.1.1 系統設計概述

圖 3.3 為系統的架構流程圖,整個系統的流程可以分成四個部份。第一個部 份為 MATLAB 端虛擬模型操控測詴帄台,是以 MATLAB 圖形使用者介面 (graphical user interface,GUI)寫成的一個互動式操控帄台,呼叫 OpenGL(open graphics library)函式庫的 3D 繪圖功能,並繪製出虛擬 3D 模型做為測詴之用,最 後把函式庫裡面用到的函數(function)與偵測到的空間點座標,匯出成 DLL 檔,

然後給第二部份使用。第二部份為 C 語言端虛擬 3D 模型操控帄台,在本論文的 介面中,是以 Microsoft Visual Studio 2010(VS2010)做為 C 語言軟體帄台,此端 先是把第一部份匯出的 DLL 檔連結至 VS2010 中,使 VS2010 讀取到我們在

圖 3.3 系統架構與流程圖。

3.1.2 OpenGL 與 DirectX

OpenGL(open graphics library),意思是開放的圖形程式函式庫,是圖形領域中 最為廣受大家推崇的 2D 和 3D 圖形 API(application programming interface,應用編 程介面)。從推出以來至今日已經被應用在各種電腦帄台及設備上,也開發出了很 多優秀的圖形類應用程式。OpenGL 是獨立於視窗操作系統或其它操作系統的,亦 是跨帄台的,在包含 CAD、內容創作、娛樂、遊戲開發、製造業及 3D 虛擬實境等 領域中時,OpenGL 幫助程式開發者實現在電腦、工作站或是超級電腦等硬件設備 上開發高性能和高視覺效果的圖形處理軟體。

Microsoft DirectX(direct extension)是由微軟公司建立的多媒體應用編程介面,

包括圖形、聲音、網路等不同的 API。由 C++程式語言實作,其 API 包含 DirectX Graphics、DirectPlay、DirectSound、DirectInput、DirectSetup 和 DirectMusic 等部分。

被廣泛使用於 Microsoft Windows、Microsoft Xbox 等電子遊戲開發,並且只能支援 這些帄台。雖然 DirectX 在一般大眾家用市場裡面受到較多人的使用並領先,但在 專業高級繪圖領域,OpenGL 亦是不能被取代的主角。有關 OpenGL 與 DirectX 的 分類示意圖,如圖 3.4 所示。

圖 3.4 OpenGL 與 DirectX 分類示意圖。

3.2 基於 MATLAB 之即時裸視立體顯像操控程式

本章節將仔細說明並解釋本實驗系統第一部分,圖 3.5 為本論文實驗系統第 一部分的詳細架構圖。本論文實驗之所以選擇 MATLAB 軟體做為測詴帄台,主 要是基於 MATLAB 具有簡單的程式語法結構、高性能的數值分析能力、強大的 繪圖功能和系統建模與模擬技術,非常適合影像處理者用以完成實驗數據分析、

圖形與影像處理和實時控制等等工作,並且也經過國際各大學術單位及公司機構 之工程領域工作者肯定與推崇。雖然本論文沒有使用到 2D 影像來做各種處理,

圖形與影像處理和實時控制等等工作,並且也經過國際各大學術單位及公司機構 之工程領域工作者肯定與推崇。雖然本論文沒有使用到 2D 影像來做各種處理,