来源:吉林纪元时空动漫游戏科技集团股份有限公司
作者:郑立国,行长印,罗江林
摘要;本文讨论了一个搭建CAVE系统的方法。本系统的搭建由网络同步控制和图像校正显示两部分组成,网络同步控制整体上是一个主从式分布式网络结构,每台电脑之间通过同步卡进行连接,保证系统在最小的相应时间内可以并行发送指令。主服务器负责交互控制,其他电脑接受主服务器的命令和实时绘制、显示立体图像。图像校正显示部分主要研究了图像的几何校正算法,实现了对不平整投影幕的异性校正。
通过在不同的虚拟漫游场景中进行测试,可以达到每秒60帧图像的显示速率,图像矫正占据每帧绘制时间大约5%,表明该系统具有良好的推广前景和较高的实用价值。
1. 引言
洞穴式虚拟现实展示系统(CAVE Automatic Virtual Environment),是目前最先进的虚拟漫游可视化展示系统,它可以把参与者完全包围在一个虚幻环境中,4 周都是通过投影展现的虚幻系统。因为投影面(三个、五个、六个)已经覆盖用户的所有视野,所以 CAVE 系统能带给参与者一种前所未有的身临其境的感受。CAVE 系统还具有较大的空间,因此在提供给使用者足够的沉浸感和交互感的同时,还能够让使用者之间相互配合,在虚拟漫游、工业设计、制造、装配领域 CAVE 系统的优越性是毋庸置疑的。
CAVE 虚拟现实系统(如图 1)一般包含 4 到 6 个显示面(可根据实际的需要进行选择),每个投影面通过高分辨率的投影仪进行显示。传统体投影显示系统是利用专业图形工作站使用高分辨率的立体投影机,该系统价格昂贵,往往只在少数大型科研机构或大企业中使用。目前随着计算机技术的发展,高性能 PC的计算能力以及 GPU 图形处理能力已有了非常大的提升,在某些方面甚至超越专业图形工作站。同时在价格方面,工厂化大规模生产制造的 PC 配件价格低廉,它的价格能够被大多数用户接受。基于网络 PC机的立体投影显示系统成的特点是高性价比,价格是同等处理能力专业机价格的十分之一甚或几十分之一;扩展性好,理论上计算能力随节点数增加而线性增加,增删节点都很方便;使用灵活,可以做任何计算处理,不局限于图形处理;升级方便,可随时采用当前最先进的配件进行升级[1]。
图 1. CAVE 系统示意图
本系统的搭建由网络同步控制和图像校正显示两部分组成,网络同步控制整体上是一个主从式分布式网络结构,每台电脑之间通过同步卡进行连接,保证系统在最小的相应时间内可以并行发送指令。主服务器负责交互控制,其他电脑接受主服务器的命令和实时绘制、显示立体图像。图像校正显示部分主要研通过图像的几何校正算法,实现了对不平整投影幕的异性校正。
2. 同步控制部分体系结构
同步控制部分通过高性能网络把 5 台电脑进行连网组成一个并行计算系统。结构图如图 2 所示每台电脑之间通过同步卡进行连接,保证系统在最小的相应时间内可以并行发送指令。主服务器负责交互控制,其他电脑接受主服务器的命令和实时绘制、显示立体图像,每台 PC 分别负责 CAVE 系统中一个投影面的立体影像绘制工作。网络使用 NVIDIA G-SYNC 信号同步卡进行连接。
图 2. 同步控制部分结构图
同步控制部分整体运作过程大致如下:在每一帧绘制前,操控端接收操作员提供的操作数据,并对各显示结点进行广播。图形绘制显示端生成对应的虚拟空间摄像机坐标,并根据摄像机坐标实时地生成相应投影面的立体影像,最终通过投影机投影到屏幕上。
采用同步卡完成系统的同步显示,操作步骤如下:
1) 在控制端电脑的同步卡上设置成 server 模式,其余的电脑上设置同步卡的模式为 client。
2) 在每台电脑上安装了 middlevr,同时在 server 上共享了 middle/bin 文件夹,并在 client 上做了网络驱动器的映射(如图网络映射),在 client 的环境变量的 PATH 里也增加了“\\server\\bin”
3) 两个机器同时启动了 VRDAEMON 程序,成功的打开端口 9998,(如图 3)。unity3d 的程序也需要映射到 client 端。
图 3. VRDAEMON 图
4) 在 server 上进行了 config the cluster,在 3dnodes 下增加 4 个 cam 和每个 cam 相机的分辨率大小。在 cluster 中分别设置 server 和 client 对应的相机位置参数,因为使用了同步卡所以在 cluster options 参数中需点击 swaplock 选项(图 4)。
图 4. Middlevr 配置图
5) 在 simulations 中增加了长白山漫游的应用程序,点击 run 就可以运行了,效果如下(图 5)。
图 5. 长白山漫游实验图
3. 图像校正显示部分
由于于多通道 cave 系统的投影幕是具有一定形变的(由于背投硬幕结构无法保证幕布的完全垂直),投影仪在直接投射到 4 个投影幕上的时候,就会出现图像的变形失真,如图 6 所示由于屏幕存在一定的形变,造成图像右侧上下边缘超出了投影面积,并且图像中竖线存在明显的形变,就需要对图像进行矫正。
图 6. 图像变形图
目前比较可行的投影图像进行矫正方法有两种方式,一种是光学方法,另一种是通过计算机非线性失真矫正技术。光学的方法也就是用本身具备图特变形矫正功能的特殊投影机代替常用的投影机,这种方法有着明显的缺点就是需要投入大量的资金,一台这种特殊投影机的价格往往是几十万美金,因而这种方法进行矫正其应用很少[2]。可行的方法是采用软件调整。近几年国内外研究人员已经提出了几何校正算法,这些算法大多借助数码相机或激光阵列定位出图像特征点在投影幕上的精确位置,然后与帧缓存中原始图像的特征点建立映射关系,并以这种映射关系进行图像的几何校正[2]。我们设计了一种针对cave 系统更简单的矫正方法——半手工网格矫正算法,将投影到投影幕上的网格,根据人工经验进行手工的矫正,通过计算变换矩阵,然后把矫正参数传递给 GPU,让 GPU 对所有输出图像进行几何参数的变换,以达到矫正效果。对几何失真的矫正流程如图 7 所示:
图 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)。
图 8. 整体效果图
5. 结论和进一步的研究工作
本文介绍了 CAVE 系统的搭建和其中图像矫正的算法。该 CAVE 系统的成本相对应国外的 SGI 系统大大降低,使得 CAVE 的应用范围可以更加广泛。另外,由于系统的搭建是基于现普通的 PC 硬件环境,系统的可扩展性、可移植性强,使得 CAVE 广泛地推广成为可能。同时该系统还不够完善,进一步要解决的问题包括如何最优化地配置系统,提供一个完整的开发环境,提供交互设备的抽象接口,提供三维声音以及提供面向不同应用领域的框架模板[3]。
参考文献 (References)
[1] 刘涛. 基于 pc 的大屏幕立体投影与快速边缘拼接[J]. 系统仿真学报, 2007, 19(3): 570-574.
[2] 任少峰. 基于多通道环幕立体投影的漫游系统的研究与实现[D]. 武汉: 华中科技大学, 2012.
[3] 林柏纬. 基于 pc 架构的高性能 cave 系统[J]. 计算机辅助设计与图形学学报, 2003, 15(6): 724-729.