APP下载

基于Unity3D的球幕实时交互显示系统

2016-09-13周梦园四川大学计算机学院成都610065

现代计算机 2016年20期
关键词:投影仪全景校正

周梦园(四川大学计算机学院,成都 610065)

基于Unity3D的球幕实时交互显示系统

周梦园
(四川大学计算机学院,成都610065)

近年来,随着计算机多媒体技术和虚拟现实技术的快速发展,沉浸式的实时交互技术应用也越来越广泛。设计一种基于PC集群和投影设备组合而成的球幕系统,实现高速图像拼接融合的实时全景交互。该系统利用Unity3D引擎,结合多投影的多屏图像融合技术,利用网络通信同步虚拟的运动对象,实现基于球幕的沉浸式全景体验交互。

球幕;虚拟现实;全景体验;实时交互

0 引言

近年来,随着Facebook的Oculus Rift、三星Gear VR、索尼PS VR等虚拟现实可穿戴设备头盔的不断出现,虚拟现实技术得到了极大的发展。同时虚拟现实的应用领域也得到了不断的扩大,沉浸式游戏娱乐,全景式网络直播,虚拟现实购物,虚拟现实旅游等新式应用应运而生。不同于可穿戴头盔式虚拟现实设备的晕眩感和长时间使用对眼睛的伤害,以计算机集群为驱动的球幕多通道显示技术在不用穿戴头盔的情况下,以高分辨率、高亮度、大视野的特征提升人们的沉浸感,广泛应用在了教育领域,科技馆展示中。

当前以球幕为基础的虚拟现实应用主要应用在了全景视频的播放中,只是在视觉上提升了人的沉浸感,而加入人机交互系统,可以让人们与虚拟场景互动,加深人们身临其境的感觉。本文利用Unity3D的实时渲染,结合球幕多投影的多屏图像融合技术,利用网络通信同步虚拟场景的对象,实现了基于球幕的沉浸式全景体验交互。

1 全景体验球幕架构

球幕系统是利用局域网将普通计算机和投影设备组成集群实现多通道的投影系统,其中每一台分控主机为一个通道,每个分控机上连接一台投影仪用于输出显示该通道的画面。整个系统基于C/S架构,通过主控机进行控制。每个投影仪展示每个通道的画面,将画面投影到球幕的曲面屏幕上。多个投影通道覆盖整个球面,利用图像拼接和融合技术,让球幕展示全景图。球幕通过提高分辨率和扩大视野角度的方法,让使用者产生身临其境的感觉。

图1 全景体验球幕架构

2 球幕实时显示关键技术

利用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 实验结果

3.1初始状态

单通道为正对前方场景,而多通道下每个画面都是相同的单通道画面。

图4 初始状态的渲染场景

3.2摄像机偏转

每个单通道虚拟摄像机旋转不同角度,多通道下每个画面不同,展示了虚拟场景的大致方位,图像并没有拼接起来。

图5 摄像机偏转后的渲染场景

3.3几何校正

单通道UV纹理变换,图像变形。多通道下图像拼接起来,但是各个通道因为边缘亮度不统一并没有融合到一起,可以清晰的看到每个投影的投影区域范围。

图6 几何校正后的渲染场景

3.4图像融合

单通道表现为图像边缘亮度变暗,多投影重叠部分亮度减弱。多通道表现为完成图像拼接和融合后最后的显示结果。

图7 图像融合后的渲染场景

4 结语

本文利用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

猜你喜欢

投影仪全景校正
天空投影仪
定制化全景声耳机系统 JVC EXOFIELD XP-EXT1正在热销中
戴上耳机,享受全景声 JVC EXOFIELD XP-EXT1
劉光第《南旋記》校正
防尘投影仪支撑架
建立在校正系统上的强大实力Sonance所能士i12
全景敞视主义与侦探小说中的“看”
在Lightroom中校正镜头与透视畸变
索尼发布真4K投影仪
高校多媒体教室投影仪维护技术分析