前面已經花了幾篇文章來介紹 Looking Glass Go 這款小型光場顯示器的使用方法了,而這一篇則是來寫一下它顯示上的技術和視覺效果吧~
不過由於 Heresy 本行也不是玩這個的,所以這邊就是隨便看看了,如果下面的內容有錯的話,也歡迎指證。
技術原理
技術原理的部分,可以參考官方的《How does Looking Glass Work?》。
首先,Looking Glass 的顯示系統號稱是在 58° 的視錐中提供了 100 個的視角、來做到立體效果。而能產生立體視覺的原因有兩個:
- 根據人的視角的移動來改變顯示的畫面(視差、parallax)
- 針對雙眼提供不同的視角(立體視覺、stereo vision)
這部分也可以參考很久以前的《立體顯示技術簡介 》這篇文章。
而官方也有提供一個示意圖(官網是動態圖):
上圖左上角,是 Looking Glass 能提供的不同視角的畫面(這邊 45 個視角),而從不同的角度看,就會看到不同的畫面;以上圖的例子來說,在黑色實線的位置、看到的就會是右上角的圖、編號 16 號的視角。
而也由於 Looking Glass 需要用同一塊面板、同時顯示許多視角的畫面,所以它的解析度勢必會被拆分、導致單一視角實際可用解析度大幅降低的問題。以 Looking Glass Go 的 1440 × 2560 來說,假設真的有 64 個視角的話,那單一視角的有效解析度大概就只剩 144 x 256 了?
不過實際上,看到的畫面解析度並不會真的有糟到這種程度。這是因為 Looking Glass 的顯示系統中,單眼看到的畫面並不像傳統空間多工的平面裸眼立體顯示系統那樣試圖讓每個視角完全隔離、而是讓使用者的每個眼睛都看到鄰近的視角的畫面混合的結果;透過這樣的技術,雖然解析度確實還是會降低、但是視覺上不會低到那麼誇張。
而且相較與以前的多視角裸眼立體螢幕,Looking Glass 基本上不太需要挑觀看位置就都可以有不錯的效果,其實也是相對好很多的!
但是相對地,他也會有一些不同的問題:
- 在對焦平面上因為沒有視差、所以會最清晰、看起來最細緻。官方把這個平面稱為「Zero-Parallax Plane」(零視差平面)。
- 在零視差平面以外的東西(前面或後面),都會因為有視差、所以在多視角畫面混合後看起來會是模糊的;由於視差越大會越模糊,所以離零視差平面越遠的東西看起來就會越模糊。
這樣的效果會有點像景深很淺的照片,沒對焦到的位置就會模糊化的感覺。(實際上當然還是不太一樣)
這部分在官網還有更多的說明和示意圖、有興趣的可以參考看看。
可視角
在可視角的部分,在規格上他雖然是說有到 58º、相當於左右應該有 29º,其實真的不算大;所以真的要多人看的話,考慮到 Looking Glass Go 的大小和視角、應該不算合適。
上個人這邊實際測試的話,感覺上大概 22º 左右邊緣就會開始出現變黑看不到的狀況;到了 35º 就會全部看不到。
而上下的角度則相當廣,不太會有色偏或是變暗看不到的狀況。但是由於他的顯示技術上下不會有變化,所以其實意義不算大。
也因為他只有處理左右方向,所以這款顯示器沒辦法轉 90 度、當成橫式顯示器來用;在橫放的狀況下,他會完全沒有立體視覺的效果,這點也是要注意的。
另外,雖然一般狀況下應該不太會注意到,但是在角度超過一定程度後,可能會在變全黑之前、看到另一面的畫面,這個可能也是技術性上的問題了。
上面這個影片在最後就有出現這樣的狀況。
可視像素
在之前介紹連接 PC 使用的狀況的時候有提過,他在接到電腦上後會被視為一個螢幕,可以正常地透過 Windows 來操作;但是實際上會因為實質上的有效解析度太低、所以基本上不太可能當成一般螢幕來用。
這邊也滿好奇,要多大的字才看得清楚?所以就稍微測試了一下:
基本上,個人是覺得要到 48 的字才勉強看得清楚、要能穩定閱讀可能要到 60 以上。不過如果是粗體字應該會更容易閱讀一點?
另外,這邊視覺上的像素排列看起來是斜的,角度大概是 10 度左右。而如果根據這條斜線來算上面像是像素晶格的數量的話,大概會是 230 x 380 個左右?(這邊也不太能理解會什麼會是這樣的數字就是了)
不過這個估算是很粗略的、基本上就是計算右側黃線和藍線的長度和紅線(約十格)的長度比例來計算的,應該會有相當的誤差。而且配置還是傾斜大概 10 度的,所以就僅供參考了。
下面則是試著在研究視角移動時、看到的畫面的細節變化:
基本上在視角移動的時候,感覺上是有一些像素在變化的感覺?
而在這邊抓下來的圖片,也會發現他每一格內似乎會有一些直線條?
不過,就如同前面說的,Heresy 也不是這方面的專業,所以也難以作進一步的分析和說明了。
輸出訊號
由於他可以視為一個電腦螢幕,再加上他實際上沒有接 USB 線也可以運作,所以實際上應該也可以從電腦送出的畫面來看看它到底怎麼玩的。
本來 Heresy 是想直接透過擷取卡來捕捉 HDMI 訊號,但是因為解析度比較特別(直式)、所以沒有辦法成功;不過後來是發現 Windows 直接抓圖的畫面就夠了。
以上一篇拿來當範例的 figma 有紀來說,電腦實際上送給 Looking Glass Go 的畫面如下:
不過這個例子 Heresy 是用轉盤拍的,再加上也沒有真的去考慮官方建議的參數(實拍也很難考慮就是),所以基本上算是視角變化過大、也沒有很好地將某一點當作焦點,所以會變成整個畫面都是糊的。
而這個畫面基本上不用透過特殊的程式、只要直接拉到 Looking Glass Go 的螢幕上全螢幕顯示、就會有立體效果了!所以應該可以視為是處理好、對應光學膜的結果了~
而如果把臉的部分局部裁切出來看的話,則如下圖:
個人覺得比較有趣的,是他實際上有固定的黑色斜條紋,所以總覺得…實際上真正有效的解析度是不是更低啊…
而如果是有把東西放到零視差平面的圖片的話,則是會比較清楚一點;像是下方右圖,由於那顆球很明確地是放在零視差平面,所以看起來就相對清楚。但是實際上放大看、斜的黑線也還會在,所以很難說真的清楚就是了。
這部分大概就是這樣吧。
可顯示深度
官方說法是可以提供大約 10 公分的虛擬深度來做顯示,不過考量到他的顯示技術在離開零視差平面後就會開始模糊,所以個人其實一直滿好奇,他比較能用的景深到底有多少?
不過這邊雖然有一直在想到底要用什麼方法、可以測試有效景深,但是後來還是沒有想到什麼好方法…畢竟實拍東西的大小進去後也不會完全一樣、然後這邊也沒有真的按照官方建議的參數來拍照,所以後來還是放棄真的換算了。
下面則是讓 ChatGPT 用 vtk.js 隨便畫的結構,算是用來展示不同深度造成的模糊效果了。
可以看到,基本上只有中間的圓柱是清楚的,離中間越遠就越模糊;這些畫面如果是在一般電腦螢幕上都是清楚的、模糊的狀況是 Looking Glass Go 的光場效果造成的。所以實際上,可以保持清楚的景深算是滿淺的,這點也是他的光學原理的限制了。
所以如果是自己寫程式的話,這方面應該是會需要注意的。
這篇大概就這樣了?本來其實是想研究看看能不能分析他的像素排列、或是其他更有意義的資訊的,但是看來以 Heresy 個人的能耐是玩不出什麼,所以就到此打住吧~ XD
目前主要的想法:
- 如果是以多人觀看為前提,視覺效果算是滿好的,也沒什麼不良的視角的問題
- 左右視角過小,所以側面資訊能提供的有限
- 能顯示的深度也有限,前/後都會模糊掉,所以使用上有一定的侷限性
- 解析度偏低,如果要顯示細節會有難度
這些問題,就不知道比較大的版本能解決多少了?不過至少以官方的資訊來說,左右視角過小的問題應該是無解的。(苦笑
接下來之後,應該是會試著把 Heresy 這邊的 OpenGL 程式移植到可以到上面跑吧~