1. 引言
洞穴式虚拟现实展示系统(CAVE Automatic Virtual Environment),是目前最先进的虚拟漫游可视化展示系统,它可以把参与者完全包围在一个虚幻环境中,4周都是通过投影展现的虚幻系统。因为投影面(三个、五个、六个)已经覆盖用户的所有视野,所以CAVE系统能带给参与者一种前所未有的身临其境的感受。CAVE系统还具有较大的空间,因此在提供给使用者足够的沉浸感和交互感的同时,还能够让使用者之间相互配合,在虚拟漫游、工业设计、制造、装配领域CAVE系统的优越性是毋庸置疑的。
CAVE虚拟现实系统(如图1)一般包含4到6个显示面(可根据实际的需要进行选择),每个投影面通过高分辨率的投影仪进行显示。传统体投影显示系统是利用专业图形工作站使用高分辨率的立体投影机,该系统价格昂贵,往往只在少数大型科研机构或大企业中使用。目前随着计算机技术的发展,高性能PC的计算能力以及GPU图形处理能力已有了非常大的提升,在某些方面甚至超越专业图形工作站。同时在价格方面,工厂化大规模生产制造的PC配件价格低廉,它的价格能够被大多数用户接受。基于网络PC机的立体投影显示系统成的特点是高性价比,价格是同等处理能力专业机价格的十分之一甚或几十分之一;扩展性好,理论上计算能力随节点数增加而线性增加,增删节点都很方便;使用灵活,可以做任何计算处理,不局限于图形处理;升级方便,可随时采用当前最先进的配件进行升级 [1] 。
本系统的搭建由网络同步控制和图像校正显示两部分组成,网络同步控制整体上是一个主从式分布式网络结构,每台电脑之间通过同步卡进行连接,保证系统在最小的相应时间内可以并行发送指令。主服务器负责交互控制,其他电脑接受主服务器的命令和实时绘制、显示立体图像。图像校正显示部分主要研通过图像的几何校正算法,实现了对不平整投影幕的异性校正。
2. 同步控制部分体系结构
同步控制部分通过高性能网络把5台电脑进行连网组成一个并行计算系统。结构图如图2所示每台电脑之间通过同步卡进行连接,保证系统在最小的相应时间内可以并行发送指令。主服务器负责交互控制,其他电脑接受主服务器的命令和实时绘制、显示立体图像,每台PC分别负责CAVE系统中一个投影面的立体影像绘制工作。网络使用NVIDIA G-SYNC信号同步卡进行连接。
同步控制部分整体运作过程大致如下:在每一帧绘制前,操控端接收操作员提供的操作数据,并对

Figure 1. The schematic diagram of CAVE system
图1. CAVE系统示意图

Figure 2. The part of the structure of the synchronous control
图2. 同步控制部分结构图
各显示结点进行广播。图形绘制显示端生成对应的虚拟空间摄像机坐标,并根据摄像机坐标实时地生成相应投影面的立体影像,最终通过投影机投影到屏幕上。
采用同步卡完成系统的同步显示,操作步骤如下:
1) 在控制端电脑的同步卡上设置成server模式,其余的电脑上设置同步卡的模式为client。
2) 在每台电脑上安装了middlevr,同时在server上共享了middle/bin文件夹,并在client上做了网络驱动器的映射(如图网络映射),在client的环境变量的PATH里也增加了“\\server\\bin”
3) 两个机器同时启动了VRDAEMON程序,成功的打开端口9998,(如图3)。unity3d的程序也需要映射到client端。
4) 在server上进行了config the cluster,在3dnodes下增加4个cam和每个cam相机的分辨率大小。在cluster中分别设置server和client对应的相机位置参数,因为使用了同步卡所以在cluster options参数中需点击swaplock选项(图4)。
5) 在simulations中增加了长白山漫游的应用程序,点击run就可以运行了,效果如下(图5)。

Figure 4. Middlevr configuration diagram
图4. Middlevr配置图

Figure 5. The roaming experiment figure of Changbai Mountain
图5. 长白山漫游实验图
3. 图像校正显示部分
由于于多通道cave系统的投影幕是具有一定形变的(由于背投硬幕结构无法保证幕布的完全垂直),投影仪在直接投射到4个投影幕上的时候,就会出现图像的变形失真,如图6所示由于屏幕存在一定的形变,造成图像右侧上下边缘超出了投影面积,并且图像中竖线存在明显的形变,就需要对图像进行矫正。
目前比较可行的投影图像进行矫正方法有两种方式,一种是光学方法,另一种是通过计算机非线性失真矫正技术。光学的方法也就是用本身具备图特变形矫正功能的特殊投影机代替常用的投影机,这种方法有着明显的缺点就是需要投入大量的资金,一台这种特殊投影机的价格往往是几十万美金,因而这种方法进行矫正其应用很少 [2] 。可行的方法是采用软件调整。近几年国内外研究人员已经提出了几何校正算法,这些算法大多借助数码相机或激光阵列定位出图像特征点在投影幕上的精确位置,然后与帧缓存中原始图像的特征点建立映射关系,并以这种映射关系进行图像的几何校正 [2] 。我们设计了一种针对cave系统更简单的矫正方法——半手工网格矫正算法,将投影到投影幕上的网格,根据人工经验进行手工的矫正,通过计算变换矩阵,然后把矫正参数传递给GPU,让GPU对所有输出图像进行几何参数的变换,以达到矫正效果。对几何失真的矫正流程如图7所示:
几何参数变换矩阵
在三维透视体的绘制中,绕X、Y、Z旋转的基本矩阵分别有如下三种:
绕X轴旋转θ角度的旋转矩阵
;(1)
绕Y轴旋转θ角度的旋转矩阵
;(2)
绕Z轴旋转θ角度的旋转矩阵
;(3)
另外对X轴平移px,对Y轴平移py,对Z轴平移pz的平移矩阵:
T (p) = ;(4)
对于任意图像的矫正变化都可以通过原矩阵对以上矩阵的一系列右乘处理以计算结果矩阵 [1] 。
4. 实验结果
软件平台:Windows7操作系统,使用unity3d和middleVR编程。实验数据:1.5 GB场景数据。
对三个不同复杂场景进行立体显示状态下漫游。通过实验结果,可以得出本系统可以很好的展现负责场景中的漫游,对于每秒60帧图像的显示速率,图像矫正占据每帧绘制时间大约5%,证明该系统可以很好的在虚拟漫游中应用(图8)。

Figure 6. The picture of image deformation
图6. 图像变形图

Figure 7. The correction process of geometric distortion
图7. 几何失真的矫正流程
5. 结论和进一步的研究工作
本文介绍了CAVE系统的搭建和其中图像矫正的算法。该CAVE系统的成本相对应国外的SGI系统大大降低,使得CAVE的应用范围可以更加广泛。另外,由于系统的搭建是基于现普通的PC硬件环境,系统的可扩展性、可移植性强,使得CAVE广泛地推广成为可能。同时该系统还不够完善,进一步要解决的问题包括如何最优化地配置系统,提供一个完整的开发环境,提供交互设备的抽象接口,提供三维声音以及提供面向不同应用领域的框架模板 [3] 。
基金项目
2013年国家科技支撑计划项目(2013BAH24F00)。
*通讯作者。