周夢園(四川大學計算機學院,成都 610065)
基于Unity3D的球幕實時交互顯示系統
周夢園
(四川大學計算機學院,成都610065)
近年來,隨著計算機多媒體技術和虛擬現實技術的快速發展,沉浸式的實時交互技術應用也越來越廣泛。設計一種基于PC集群和投影設備組合而成的球幕系統,實現高速圖像拼接融合的實時全景交互。該系統利用Unity3D引擎,結合多投影的多屏圖像融合技術,利用網絡通信同步虛擬的運動對象,實現基于球幕的沉浸式全景體驗交互。
球幕;虛擬現實;全景體驗;實時交互
近年來,隨著Facebook的Oculus Rift、三星Gear VR、索尼PS VR等虛擬現實可穿戴設備頭盔的不斷出現,虛擬現實技術得到了極大的發展。同時虛擬現實的應用領域也得到了不斷的擴大,沉浸式游戲娛樂,全景式網絡直播,虛擬現實購物,虛擬現實旅游等新式應用應運而生。不同于可穿戴頭盔式虛擬現實設備的暈眩感和長時間使用對眼睛的傷害,以計算機集群為驅動的球幕多通道顯示技術在不用穿戴頭盔的情況下,以高分辨率、高亮度、大視野的特征提升人們的沉浸感,廣泛應用在了教育領域,科技館展示中。
當前以球幕為基礎的虛擬現實應用主要應用在了全景視頻的播放中,只是在視覺上提升了人的沉浸感,而加入人機交互系統,可以讓人們與虛擬場景互動,加深人們身臨其境的感覺。本文利用Unity3D的實時渲染,結合球幕多投影的多屏圖像融合技術,利用網絡通信同步虛擬場景的對象,實現了基于球幕的沉浸式全景體驗交互。
球幕系統是利用局域網將普通計算機和投影設備組成集群實現多通道的投影系統,其中每一臺分控主機為一個通道,每個分控機上連接一臺投影儀用于輸出顯示該通道的畫面。整個系統基于C/S架構,通過主控機進行控制。每個投影儀展示每個通道的畫面,將畫面投影到球幕的曲面屏幕上。多個投影通道覆蓋整個球面,利用圖像拼接和融合技術,讓球幕展示全景圖。球幕通過提高分辨率和擴大視野角度的方法,讓使用者產生身臨其境的感覺。

圖1 全景體驗球幕架構
利用Unity3D引擎模擬球幕的顯示方式主要有以下幾個步驟:得到系統內像素的映射關系;根據各個通道設置Unity3D中虛擬攝像機朝向,使其與顯示投影儀朝向對應,一個通道一個攝像機,利用多通道中多個攝像機擴大視野角度;幾何校正圖像拼接;圖像邊緣融合;最后通過網絡同步的方式同步多通道的虛擬場景,實現實時交互顯示。
2.1像素間映射關系
整個系統借助相機作為中間監視工具,得到投影儀、球幕、相機間的像素間的映射關系。設相機像素坐標為:(cx,cy)T,投影儀幀像素坐標為:(bx,by)T,屏幕上像素坐標為:(px,py,pz)T。那么存在映射關系如:相機與屏幕非線性的映射關系f1∶R3→R2,即 (cx,cy)T=f1(px,py,pz);投影儀幀與屏幕非線性的映射關系f2∶R2→R3,即f2(bx,by)=(px,py,pz)T。借助投影特征圖形如同棋盤格圖和線條圖的特征點,找到各個像素映射關系,最后得到球幕系統中投影儀的各個方位信息,圖像從投影儀到曲面屏幕上的幾何校正數據以及邊緣融合信息等。

圖2 相機、投影屏幕和投影儀映射關系圖
2.2攝像機朝向
在虛擬場景中攝像機的作用主要有兩個:一個是由世界坐標變換到攝像機坐標的觀察坐標變換,即設置攝像機的位置和朝向。在Unity3D中,利用myCamera.transform.LookAt(eye,up);設置朝向即可。

圖3 透視投影變換
其二是設置透視投影變換,在Unity3D中提供的是基于對稱視錐體的變化函數,但是由于球幕系統其復雜異形的屏幕特征,存在較為嚴重的非線性變形,我們利用更為一般的透視投影變換矩陣∶

參數為:
Near∶投影平面的近截面值;Far:投影平面的遠截面;(Z值范圍);
right∶投影平面的右邊界值;left∶投影平面的左邊界值;(X值范圍);
top∶投影平面的上邊界值;bottom∶投影平面的下邊界值;(Y值范圍);
Unity設定:myCamera.projectionMatrix=proMat。
2.3幾何校正
由于從投影儀的平面數據投射到曲面屏上會出現圖像的非線性變形,從而導致人眼觀測時的圖像扭曲,此時圖像需要進行幾何校正。圖像的變形,我們采用紋理映射UV變換的方式。紋理映射技術相當于把圖片通過紋理坐標貼在物體表面以增加物體細節。在球幕的測試階段,我們可以得到投影儀幀中每個像素點與投影平面上每個像素點的映射關系,我們把這種映射關系當做UV對應關系。投影儀平面像素為1920× 1080,我們可以建立一個1920×1080矩形面片平鋪在屏幕上。我們獲取當前屏幕的渲染圖像,經過UV映射到矩形面片上,這時圖像就經過了幾何校正。處于對實時性的考慮,我們并不需要每一幀都繪制1920×1080的面片進行UV變形,實際使用中我們使用360×108的面片通過UV映射即可達到很好的效果。
在整個幾何校正和圖像融合階段,我們利用DirectX11和C++編寫變換程序生成動態鏈接庫DLL供Unity3D腳本調用,我們利用Unity3D實時渲染虛擬場景,然后把當前渲染屏幕的圖像生成一張紋理傳遞給DLL程序實現幾何校正和融合的過程。
DLL實現接口:
private static extern void SetTextureFromUnity(System.IntP-tr texture);
Unity3d中傳遞實時渲染圖像:public Texture2D tex;
tex.filterMode=FilterMode.Point;
tex.ReadPixels(new Rect(0,0,Screen.width,Screen. height),0,0,false);
tex.Apply();
SetTextureFromUnity(tex.GetNativeTexturePtr())。;
2.4圖像融合
通過幾何校正的階段后的圖像拼接,整個球幕已展示了一個全景虛擬空間,但是各個通道的亮度略有不同,特別是兩個通道重合疊加的部分亮度明顯,我們需要進行圖像融合,把通道重疊的部分進行均勻過度,單個通道重疊部分亮度減弱,重疊起來之后亮度統一。我們對每個像素進行一下操作:
(1)itfTexture是一張[0,1024]的1D紋理,先把當前顏色進行紋理映射,因為顏色值一般為[0,255],提升顏色精度,增加圖像融合細節。
(2)對每個像素顏色乘以一個0~1的值,作用于亮度調節。
(3)itfInvTexture是itfTexture的逆變化,把以矯正過的顏色值重新變回系統的顏色值。
以下為幾何校正和圖像融合在片段著色器的實現代碼,其中frag.tex0為UV映射數據,frag.tex1為圖像融合數據:


2.5網絡同步
根據全景體驗球幕的系統結構,我們使用Unity3D開發的實時交互系統采用了C/S(Client/Server,客戶端/服務器)的體系結構。三維圖像的實時渲染工作本身會占用大量的系統資源,為了保證系統的實時響應和渲染效率,我們在分控上主要進行渲染工作和顯示,而在主控上設置一個服務器端程序。服務器程序用于整個實時系統的控制和交互,同時我們把比較復雜的實時計算和仿真也放在服務器上計算出結果。服務器保證整個虛擬場景中各對象的狀態信息,當用戶交互改變對象狀態時,利用網絡包通過局域網把狀態信息和計算后得到的復雜數據廣播到各個分控端,保證每個分控的虛擬場景為一個相同的虛擬場景,使整個系統同步顯示和交互。
3.1初始狀態
單通道為正對前方場景,而多通道下每個畫面都是相同的單通道畫面。

圖4 初始狀態的渲染場景
3.2攝像機偏轉
每個單通道虛擬攝像機旋轉不同角度,多通道下每個畫面不同,展示了虛擬場景的大致方位,圖像并沒有拼接起來。

圖5 攝像機偏轉后的渲染場景
3.3幾何校正
單通道UV紋理變換,圖像變形。多通道下圖像拼接起來,但是各個通道因為邊緣亮度不統一并沒有融合到一起,可以清晰的看到每個投影的投影區域范圍。

圖6 幾何校正后的渲染場景
3.4圖像融合
單通道表現為圖像邊緣亮度變暗,多投影重疊部分亮度減弱。多通道表現為完成圖像拼接和融合后最后的顯示結果。

圖7 圖像融合后的渲染場景
本文利用Unity3D的實時渲染交互能力,結合基于計算機和投影設備的全景體驗球幕系統,在Unity3D引擎的基礎上利用球幕的快速校正和拼接融合算法,設計了一種高分辨率,提高觀看視場角度,增加用戶沉浸感,讓用戶可以與虛擬世界進行實時交互功能的虛擬現實系統。隨著虛擬現實體感交互技術的不斷進步,Unity3D可以較為方便的加入諸如Kinect、Leap Motion等體感設備的交互支持,讓用戶可以有更全面的感官體驗。
[1]宣雨松,王軍花.Unity3D游戲開發[M].北京∶人民郵電出版社,2012.
[2]趙沁平.虛擬現實綜述[J].中國科學(F輯∶信息科學),2009,3901∶2-46.
[3]馮建平,吳麗華.基于全景圖像的三維全景漫游系統的構建[J].計算機與數字工程,2013,41(27901)∶115-117.
[4]范丹陽.基于PC集群的多通道視景仿真系統研究[D].西安建筑科技大學,2014.
[5]梁思毓.面向球幕的編輯式多投影校正技術與系統[D].復旦大學,2012.
[6]Fletcher Dunn,Ian Parberry.3D數學基礎:圖形與游戲開發[M].史銀雪,陳洪,王榮靜譯.北京∶清華大學出版社,2005.
Dome-Screen;Virtual Reality;Panoramic Experience;Real-Time Active
Dome-Screen Real-Time Interactive Display System Based on Unity3D
ZHOU Meng-yuan
(College of Computer Science,Sichuan University,Chengdu 610065)
In recent years,with the rapid development of computer multimedia technology and virtual reality,the immersive real time interactive techniques'applications are increasingly used.Designs a dome-screen system based on PC clusters and projection equipment to achieve real-time panoramic interaction and rapid image mosaic and fusion.In order to achieve real-time panoramic interactive experience,the system uses Unity3D engine and combines the technology of multi-screen image fusion based on dome-screen with multiply projection equipment and synchronizes virtual motive objects using network communication.
1007-1423(2016)20-0069-05
10.3969/j.issn.1007-1423.2016.0.014
周夢園(1991),男,重慶北碚人,碩士研究生,研究方向為圖形圖像技術
2016-05-04
2016-07-12