立體成像簡介
之前有寫了一篇立體電影的感想:《首部全 3D 真人電影:地心冒險 3D》;當時大概也講了一下一般 3D 立體效果成像的原理。
現在所謂立體電影的效果,都是透過兩台投影機個字放出左右眼的影像到同一個螢幕上,因此當不戴眼鏡的時候,可以發現螢幕上會有兩個不完全相同的影像;然後再透過特殊的眼鏡,針對一隻眼睛,濾掉其中一個影像,讓左眼只看到左眼的影像、右眼只看到右眼的影像。藉此,就可以透過讓兩眼看到不同的影像,來欺騙大腦,讓大腦以為我們看到的是真的立體的東西。
但是用投影機的方案,其實相對的空間要比較大,不太適合一般使用。
因此,也有一些其他比較適合桌上型電腦方案可以使用。例如傳統 CRT 的顯示器,由於更新頻率夠高,可以透過把更新頻率拉高,一張畫左眼、一張畫右眼,這樣交錯的顯示兩眼的影像;然後再搭配特殊的同步眼鏡,把其中一隻眼睛遮蔽,以達到只讓左眼看到左眼影像、右眼看到右眼影像的效果。這樣,就可以透過 CRT 螢幕產生立體效果了!
不過這樣的技術也有缺點,包括:
- 同步眼鏡採用機械的快門鏡,不但成本高,也比較重。
- 顯示卡需要特殊的同步訊號輸出介面,這點大多是專業級的繪圖卡(nVdia Quadro、ATI FireGL)才有的。不過這點到是可以使用一般顯示卡,再加上透過特殊線材來做到。
右圖就是一組這樣的裝置。右邊的是紅外線訊號發射器,要連結到顯示卡上,並會發出訊號,告訴眼鏡要遮蔽哪隻眼睛;左邊的眼鏡則要對著發射器接收紅外線訊號,來遮蔽其中一隻眼睛。
立體 LCD 螢幕:iZ3D
目前的主流螢幕大多都是 LCD,但是由於一般的 LCD 螢幕更新率不夠快,所以並沒有辦法透過上面這樣的方法來做到立體效果。這使得目前大部份的 LCD 螢幕,都沒有辦法做到立體的效果。
而 iZ3D 則就是透過另一種方法,來在 LCD 上呈現立體效果的螢幕;他的官方網站在:http://www.iz3d.com.tw/。
iZ3D 所採用的方法比較不一樣的地方是,他在一個螢幕裡,放了兩層特殊的偏光面板(官方文件中稱為「前面板」和「後面板」),分別顯示左右眼影像。由於經過特殊的設計,他在沒有帶上偏光眼鏡的時後,只會看到輸出給後面板的畫面,可以當成一般的螢幕使用;而帶上了他的線性偏光眼鏡後,就可以讓左眼只看到前面板,右眼只看到後面板的畫面,而感覺到立體畫面了!
原理的介紹,可以參考他們的官網:http://www.iz3d.com.tw/about.php#A22(雖然 Heresy 覺得也沒講多少就是了)。
目前 iZ3D 的螢幕只有一款,大小 22" 吋、解析度 1680×1050,售價 18,000;而隨機會附上兩個特殊的偏光眼鏡。輸入介面有三個,兩個 DVI 和一個 D-Sub,不過實際只能同時使用兩個輸入,一個給前面板,一個給後面板。
一般顯示模式
上面是官方網站的說法。但是,由於立體成像的一個要素,就是要在同一個地方顯示兩個不同的畫面;而 iZ3D 是用兩個重疊面板來做到,所以理論上如果兩個面板的畫面不一樣,在沒戴偏光眼鏡的情形下,應該會看到兩個不同的影像。但是由於 iZ3D 一般是使用 Dual View 的模式(後面的部分會提到),兩個螢幕的畫面一般都會是不同的!那要怎麼讓使用者在沒戴眼鏡的時候,可以當作一般螢幕使用呢?
iZ3D 為了要讓使用者在沒戴眼鏡時,可以當成一般螢幕使用,實際上在兩個面板的輸出畫面上,都下了些功夫;也就是透過去修改兩個畫面,讓這兩個修改過的畫面重疊在一起後,會變成一個看起來很正常的主螢幕畫面。而此時,如果帶上偏光眼鏡,就會發現兩眼看到的畫面不但不同,而且顏色都很怪,同時有很強烈的不適感。
所以,其實 iZ3D 的兩個面板顯示的畫面,都經過修改過的,而非原始的畫面!
下面就用截圖和照片來說明實際的狀況吧∼首先是目前電腦理論上輸出的畫面:
由於是 dual view 的雙螢幕模式,所以會變成兩倍的大小,而內容是以水平擴展的方式呈現;Heresy 也刻意放了一個視窗在兩個螢幕中間,以利識別。而這樣的訊號接到 iZ3D,沒帶偏光眼鏡時看到的畫面,會下圖的樣子:
基本上是和截圖的左半邊,也就是主螢幕得畫面是一致的!當然,每台螢幕呈現效果再加上又用相機翻拍,一定會有所影響;但是基本上,以這樣的呈現效果,iZ3D 在沒戴眼鏡時,的確是可以當一般螢幕用。
但是這個時候,如果透過線性偏光片看螢幕的話,可以發現其實兩個面板的畫面,都和上面的畫面不一樣!
到這邊應該已經可以看出來了,iZ3D 應該是藉由兩個畫面不同的顏色互補,讓使用者在沒帶眼鏡的情況下,可以感覺上只看到左半邊主螢幕的畫面。
立體模式
上面的圖片資料,都是一般模式下的情況。那在 3D 立體模式呢?
在立體模式的時候,iZ3D 的運作就有些不同了!在 iZ3D 的驅動程式中,有提供了兩種測試,來做為立體效果的參考,這邊 Heresy 也以這兩種測試資料來呈現他的效果。
第一個效果測試,是全螢幕的靜態立體圖片;在不戴偏光眼鏡的情形下,直接看螢幕看到的就是右圖的結果。基本上,可以很明顯的看出來有兩個不完全一樣的影像在同一個畫面上;這就是左右眼看到不同的影像疊在一起的結果。
而此時也可以發現 iZ3D 採用鏡面的缺點了,那就是很容易受到周圍的光線影響!Heresy 在翻拍螢幕時,iZ3D 的鏡面效果,甚至讓 Heresy 拍到坐在後方的同事了…(這也是 Heresy 個人很討厭鏡面螢幕的原因… orz)
而如果此時透過偏光眼鏡,那左右兩眼看到的影像會是:
仔細看的話可以發現,兩眼的畫面都有兩層的影像,而且顏色都和原來的畫面不一樣,如此兩個影像合起來後,才會維持原來的顏色。如果在執行這個測試時,按下 [Print Screen] 來捕捉螢幕畫面,則會呈現下面的結果:
可以發現,主螢幕顯示的畫面,看起來是左右兩眼影像的重疊;而延伸的螢幕所顯示的,則是一張灰階的…感覺像是浮雕畫的影像?Heresy 不是很肯定,不過基本上應該是左右眼兩張影像透過某種方法算出來的差異。但是不管怎麼看,都和透過偏光鏡看到的不相同。
iZ3D 提供的另一個測試則是動態的,他的畫面就像右邊的照片一樣,一個灰底的視窗,中間是一個 iZ3D 的 logo 在轉。這隻程式就是簡單的 Direct3D 的程式了∼不同於上面是用立體照片,沒辦法修改立體的感覺;透過這個程式,也可以讓使用者試著調整一下立體呈現的效果。Heresy 自己試過的感覺,應該是可以調的還不錯啦∼
不過,由於立體的範圍只有一個視窗,而且 iZ3D 對於其他非 Direct3D 的範圍沒有做處理,所以會導致在其他區域看起來的感覺非常非常的怪。不過其實這也是透過水平擴展來做立體呈現的通病吧?
而此時,兩隻眼睛透過偏光鏡看到的結果,會是下面這樣的。
情形和前面都差不多,不但立體部分都有兩重影像,顏色也是有偏差的。而如果在這個測試下的情形下按下 [print screen] 來擷取螢幕的畫面,會得到下面的結果:
從上面這兩張圖就可以很清楚的發現,在延伸螢幕得畫面上,只有一塊區域是以灰階來顯示的∼而其他的區域,則是和一般模式時相同,直接顯示原來的畫面。
進一步分析
基本上,上面的測試資料,應該是已經涵蓋了他的所有狀況了。而有這些資料,Heresy 認為可以得到下列這些結論:
- iZ3D 的立體顯示,不是真的讓左眼看到左眼影像、右眼看到右眼影像。
理論上的立體效果,應該是讓左眼只看到從左眼的視角看出去的影像、右眼只看到從右眼的視角看出去的影像;但是 iZ3D 透過偏光鏡看,兩隻眼睛都可以看到雙重影像(雖然不明顯),同時色調也都不對!但是兩隻眼睛都時看之後,應該是腦部有自動作一些處理,所以反而沒有感覺到這些差異,而形成立體的效果。這點和用兩台投影機呈現的效果,還是有點落差的!- iZ3D 螢幕的兩個面板,並不會一五一十的直接把輸入的螢幕訊號作輸出!
他會根據一些演算法,在螢幕的硬體上,把兩個面板的畫面都做調整,讓使用者在沒帶眼鏡的情形下,會看到送給後面板的畫面。- iZ3D 的驅動程式,會去攔截 OpenGL 或 Direct3D 的畫面,對於這些由 3D API 繪製的部分,另外做額外的處理。
在動態測試的部分,就可以很清楚的發現,iZ3D Driver 除了會在主螢幕的 3D 視窗裡面繪製過特殊修改的內容,也會到延伸螢幕的同一個位置,把另一個部份需要的內容(灰階的部分)給畫出來。所以,iZ3D 的這個立體方案,除了硬體外,驅動程式也很重要,一定要兩者都正常運作,才能顯示出正確的立體效果。
這點和 Heresy 最早的想法差異滿大的。Heresy 本來認為因為他已經接受了兩個訊號的個別輸入,所以應該只要用 OpenGL 輸出兩眼的影像,就可以呈現立體了!但是實際上,如果以上一版不支援 OpenGL Quad Buffer 的 1.07 Driver 來使用 iZ3D 的話,並沒有辦法正確的呈現出立體的效果。
為了確認螢幕和驅動程式的關係,Heresy 也試過把上面用 print screen 截下的圖,各自放到兩個螢幕的對應位置,發現這樣的確也會產生立體的效果!而相對的,如果是自行在兩個螢幕放上左右眼的影像(例如用標準 OpenGL Quad Buffer 輸出,不加裝 iZ3D 驅動程式),戴上眼鏡後,則會產生非常大的顏色偏差,也不會有正確的立體效果出來。
也就是如果可以找到 iZ3D 所用的計算方式,自行計算出類似上面截圖的兩種影像(主螢幕的的彩色雙重影影像和延伸螢幕的灰階影像),就可以繞過 iZ3D 的驅動程式,呈現立體的效果了!
內容的支援性
上面大概都講完了技術層面的東西了。而在內容的支援性上呢?
iZ3D 的立體方案,主要是以 Direct3D 的遊戲為主,在他的官網上,就有列出了經過測試支援的遊戲列表;基本上目前 Windows 的 3D 遊戲大多是採用 Direct3D 來做呈現的,所以即使在列表中沒有列出來,理論上應該還是有相當高的可能性是可以用的?
由於 Heresy 玩的遊戲也不多,再加上這款螢幕採購進來,本來就是為了工作需求,所以並沒有認真的去測這一塊。不過 Heresy 有試著跑了跑跑卡丁車和 Fatal Fake 這兩款 3D 的遊戲,結果卻都不甚理想。卡丁車測試了兩次,在進入遊戲後,遊戲都會當掉而無法正常進行;而 Fatal Fake 雖然可以正常的以立體模式進行遊戲,但是全螢幕模式卻會被強制改成視窗模式。因此,Heresy 所測的兩個遊戲,都不算能完美的在 iZ3D 上運作。
除了遊戲外,iZ3D 也支援用特殊版本的 Media Player Classic 來撥放立體的影片。支援的立體硬片模式,涵蓋了水平(Side-by-Side)、垂直(Upper and Down)以及交錯式(Interlace)三種,基本上應該也算是涵蓋了所有的種類了∼但是說實話,一般人哪裡可以取得立體影片,Heresy 還真的不曉得…或許可以考慮自己用兩台攝影機拍吧? :p
而在上述這兩種類型的時候,iZ3D 實際上是使用雙螢幕的設定(Windows 的延伸桌面,nVidia 叫 dual view),然後把主螢幕輸出在後面板,延伸螢幕輸出到前面板;如此一來在沒帶上眼鏡的時候,就可以正常的看到主螢幕,而可以正常的操作。
在最新版的 1.08 驅動程式,也開始支援 OpenGL 的 Quad Buffer Stereo 了。在這種模式下,要把螢幕設定成為仿製(Clone)模式,而顯示卡本身的立體設定也要是使用仿製模式的。另外要注意的是,Quad Buffer 的 stereo 是專業繪圖卡(nVidia Quadro、ATi FireGL)才有的功能,一般的遊戲卡是不支援的!
此外,在英文版的手冊中,有提到目前 OpenGL Quad Buffer 模式只能用在 nVidia Quadro 的顯示卡上;這應該是因為 ATi 的 FireGL 沒有 clone 的立體模式的關係所造成。另一個更討厭的是,就算是 nVidia Quadro 的顯示卡,在 Windows Vista 下還是沒有辦法使用這樣的模式…根據 nVidia 的說法,這是因為 Vista 的問題,所以沒辦法做到 Clone 模式的 Stereo。
不過在 iZ3D 的驅動程式裡,也還提供了「OpenGL Quad Buffer Emulation」的功能(不過似乎只有 30 天試用 orz),讓本來是屬於 Quadro 這種專業卡才有的功能,可以在一般的遊戲卡上使用!而如果用 OpenGL Quad Buffer Emulation 這種模擬模式的話,要使用的螢幕配置,就不是 clone 而是 dual view 了∼在這情形下,Quadro 在 Windows Vista 也是可以有立體輸出的!
結論與感想
對於 iZ3D 的所製造的立體感,Heresy 覺得還算不錯!Heresy 主要是以 Heresy 這邊自行開發的 OpenGL 程式進行測試,一般的畫面,都有相當程度的立體感。但是有一些情況,會有顯著的缺點:
- 在兩眼影像差異較大的情形下,會造成兩眼的影像沒辦法很好的形成立體感,而且在這種情況下,會發現明顯的色偏。
- 在物體過小(例如線段)時,立體感幾乎沒有…
此外,對於非全螢幕的視窗 3D 程式,由於背景的影像沒有經過特殊處理,會造成視覺上的妨礙,看起來相當地不舒服!這點可能也是可以透過一些特殊方法避開的(理論上,應該送一片灰色就可以了?),但是目前 iZ3D 是沒有去處理他。
而回到螢幕本身的畫質的話,Heresy 覺得最慘的還是亮度吧?只能說,不虧是奇美的螢幕,果然還是已過亮的情況,變成「奇美牌檯燈」了! XD
在 Heresy 看來,即使把螢幕的亮度調到最低,還是嫌太亮啊…不過帶上偏光眼鏡後,由於偏光鏡本身會濾掉相當程度的光線,所以他的亮度到是變得比較合適了。另一點 Heresy 覺得比較討厭的,就是他的鏡面螢幕了。問題在前面其實也有提到了,那就是在一般使用時,很容易受到周圍的環境影響;如果螢幕畫面很暗的時候,很容易把他當成鏡子用…可以的話,Heresy 還真希望他能有非鏡面的版本,這樣在立體呈現上,還比較不容易有干擾。
原始發表:http://heresy.spaces.live.com/blog/cns!E0070FB8ECF9015F!4420.entry