立体显示技术在化学教学中的应用研究
2009-12-31朱嵬
朱 嵬
【摘 要】 立体显示能增强计算机显示内容的真实感,并为显示内容的空间关系提供重要的视觉信息。本文提出了一种基于低成本PC和普通投影仪构建立体显示系统的方法,有效地解决了立体显示系统的逼真度和成本之间的矛盾。本文主要工作在于第一次把立体显示技术应用于化学教学系统,分析了基于立体显示技术的化学教学平台结构以及用OSG实现立体显示的可行性,阐述了立体视觉参数设置及实现方式。同时使用OSG开发平台实现了基于立体显示技术的化学教学平台。
【关键词】 立体显示 化学教学 虚拟现实
1 基于立体显示技术的化学教学平台
立体显示系统能够为学生提供纵深感强、高质量、高分辨率的立体影像,通过大视场角的立体图像以及自然的交互手段,带立体显示的化学教学平台能够带给学生一种强烈的沉浸感和临场感。
美国教育学家布鲁纳说:“学习的最好刺激,乃是对所学材料的兴趣”。化学是一门深奥抽象的自然科学,因此不少学生感到难学,对化学课常常是望而生畏。经验表明,学生感到化学难学的原因不是对课本不熟,而是无法想象完整的物质结构情景,从而无法准确地弄清化学变化过程。立体显示技术作为一种特殊的教学手段,具有真实感强,形象生动、感染力强的特点,隐含丰富的兴趣因素,可以直观展现物质结构和变化过程,创设生动、直观、形象的学习氛围,使教学直观化、模型化、动态化,能够将抽象的化学概念转化为形象生动的直观模型,降低了化学的认知难度,充分调动起学生的求知欲望和学习兴趣。学生可以在通过人机交互设备和老师同时操作,互动性很强,增强了学习兴趣,提高了学习效率。
然而,传统的立体显示系统大多基于昂贵的图形工作站和专业投影仪,在推广应用上有一定难度。目前高性能PC在计算能力以及图形处理能力已有了大幅度的提高,以低成本PC和普通投影仪构建立体显示系统,来代替传统立体显示系统中昂贵的图形工作站和专业投影仪无疑是一个非常好的想法,这将能够大幅度地降低系统造价,使该类系统得到更广泛地推广。
本文首先提出了一种基于低成本PC和普通投影仪构建立体显示系统的实现方法,有效地解决了立体显示系统的逼真度和成本之间的矛盾。其次,讨论了立体视觉参数的设置和实现的方式,并使用OSG开发平台实现了一个化学教学平台。
2 立体显示原理
2.1 人眼的结构与立体视觉机制[2]。人眼由眼球和眼附助器官组成。眼球为视觉器官,由眼球壁及内部水晶体组成。眼的附助器官包括眼帘、结膜、眼球外肌等,对眼球起保护作用。解剖学表明,人眼的水平视野一般在50°左右,而垂直视野可以达到100°。
立体图产生的基本原理是通过深度信息的恢复来实现的。我们这里所指的立体图是通过让左右双眼接受各自的图像,从而恢复三维信息。通过这一机制产生的立体图是和人们日常生活中感受立体信息的过程相一致的。
立体图绘制则是对同一场景用左右两个视点分别计算其透视图,产生两幅具有一定视差的图像,然后借助立体眼镜等设备,使左右双眼只能看到与之相对应的图像,视线相交于三维空间中的一点上,从而恢复出三维深度信息。
当观察一副非立体图像时,对于图像上的每一点,例如图1(a)中的a点,观察者的左右双眼交于屏幕该点上。因此,观察者的视线都相交在一个平面上,不存在任何深度信息。而对于立体图,对于三维空间中的某个点,左右双眼看到的将是屏幕上的两个不同点b、c,如图1(b)。两条视线的延长线将相交于空间中一点,从而使观察者产生空间距离感。
图1(a)非立体图形成像图1(b)立体图形成像
2.2 多通道立体显示的系统结构。立体显示系统有两大类:一类称作主动系统,另一类称作被动系统。
主动式立体成像是计算机通过投影仪快速交替地将左右眼的图像投射到屏幕上,并通过红外发射器(Emitter)发射同步信号。观众佩戴主动式立体眼镜,镜片由高速反应液晶制成。该立体眼镜的缺点是价格较贵,重量较大,佩戴不是很方便。仅适合少数人观看。
被动式立体成像一般情况下是使用两台投影仪,一台投射左眼图像,另外一台投射右眼图像,将左右眼图像同时投射到屏幕上。投影仪镜头前安装偏振光片,使投射的光线变成偏振光,而观众配带的立体眼镜的镜片也是偏振光片,并且左眼的偏振片与投射左眼图像的投影仪的偏振光片的偏振方向是相同的,右眼的偏振片与投射右眼图像的投影仪的偏振光片的偏振方向是相同的。这样左眼图像只能透过左眼镜片,而右眼图像也只能透过右眼镜片,从而使观众看到立体的图像。由于工作站的显示输出都是主动立体格式,因此必须使用立体图象转换器(AP)将主动立体格式转换为被动立体格式。连接方式如下图所示:
2.3 INFITEC技术。INFITEC 是 “INterferenz FIlter TEChnik”的缩写。是一种新的立体显示技术,图像信息由不同的三个一组的可见光波长来传递。在系统中可视的色度干扰非常小,它为立体图像带来几乎完美的分离。INFITEC技术起初是为满足德国的BMW和Benz汽车设计而研发的。它继承了目前主动立体和被动立体显示的优点,克服了缺点。
左右眼的图像由两个投影机同时显示同每个投影机只负责一只眼睛的图像,左右的分离由发送光通过INFITEC滤波器完成。这样每只眼睛的图像就不会对另外一个图像产生任何色度两度干扰。这样就带给我们一个完美的图像分离,它对立体感的产生很重要。
优点:①投影机输出交替的、频率互补的多个光波段对应左右眼;②立体眼镜没有能源,左右眼镜分别接受自己通过的光;③双机时光线利用率为27%,单机时光线利用率为16%;④图象质量好,无闪烁,眼镜轻,舒适性好。
2.4 立体透视。立体透视把通常的单视点透视扩展到双视点透视,即对每个视点分别计算一副透视图。简单的分别计算左右视点的图像将使得计算量增加一倍。通常使用的方法是利用两幅图像的投影共同点,尽量减少计算量。
立体透视图的计算方法共有两类,称为off-Axis投影法和on-Axis投影法[4],下面详细讨论这两种投影方法。
2.4.1 off-Axis投影。在off-Axis投影中,假设有两个水平排列的投影中心,如图4所示。右视图是通过视点(R)透视得到的,而左视图则是通过左视点(L)投影得到的。如果视点在点(0,0,-d),空间一点P(x,y,z)的单视点投影坐标为(xp,yp,zp)
xp=xd/(d+z)
yp=xd/(d+z)
zp=0 (2-1)
对于视点在(e/2,0,-d)和(-e/2,0,-d)的双视点投影,其中e为双眼间距。左视点的投影结果为:
xL=(xd-xe/2)/(d+z)
yL=(yd)/(d+z)(2-2)
右视点的投影结果为:
xR=(xd+ze/2)/(d+z)(2-3)
yR=yL (2-4)
由式(2-2)和(2-3)可知xL和xR是由相同的变量相加或相减组成。因此,计算xL、xR时,对相同的变量只计算一次,然后代入到式(2-2)、(2-3)中求得xL、xR。这样可使算法的效率提高30%~40%。从视野的角度来考虑,off-Axis投影的视野由三个部分组成,如图4(b)所示。RAB为右眼的视野范围,LCD为左眼的视野范围,所以总的视野为两个三角形的相加,可见视野的范围比单视点投影大。
2.4.2 on-Axis投影。on-Axis投影和off-Axis投影的差别在于它不是通过移动视点,而是移动三维空间中的物体来获得两幅透视图象,如图5。从off-Axis中推导的xL、xR,也可以写成下列形式:
xL=d(x+e/2)/(d+z)-e/2
xR=d(x-e/2)/(d+z)+e/2
所以三维空间中的一点P(x,y,z)的左透视变换可由下面几步得到:①把x平移到x+e/2;②用标准的透视运算进行投影运算;③把图象平移—e/2。
右视点运算的过程与之相似。
2.5 立体图绘制参数的选择。在立体图绘制过程中,一个重要的参数是双眼间距e。在两个视点水平距离e一定的条件下,屏幕上两幅投影的视差可以表示为:
P=xR-xL=e[1-d/(d+z)](2-5)
此式可以表示成:e=P/[1-d/(d+z)]=P(i+1)/i (2-6)
式中i为在空间z方向以d为度量单位的值。另外,e还可以用视角来表示,这时视角是指对于屏幕上xL、xR两点的张角β,所以P=2dtg(β/2)(2-7)
e=2dtg(β/2)(i+1)/i(2-8)
式中,e为左右视点的距离,d为视点和投影屏幕的距离;β为视角(HFOV);i为以d为度量单位的深度信息。可见,选择e和HFOV对于立体图的质量有很大的影响。如果HFOV太大,两幅图像将难以合成。反之,则没有立体效果。在决定HFOV的大小时,考虑到观察者双眼的距离以及距屏幕的距离等因素。除此之外,还要考虑左右图像的交替时间、显示屏的磷光现象、CRT的刷新频率、图象因视点位置变化而发生的形变等。
3 OSG中投影变换阵和立体的实现
OSG(OpenSceneGraph)是一款高性能的3D图形开发库。广泛应用在可视化仿真、游戏、虚拟现实、高端技术研发以及建模等领域。使用标准的C++和Open GL编写而成,可以运行在Windows系列、OSX、GNU/Linux、IRIX、Solaris、HP-Ux、AIX以及FreeBSD操作系统。
OSG的图形图像开发软件包(SDK)包括大量的C++类和压缩抽象Open GL图形库、数组类型及操作的方法。平台本身可将细节处理成通过一组源代码来开发和维护。在可视化和仿真开发方面是一个非常好的开发工具。
OSG中先计算好投影变换阵,然后设置视见体的视场角、显示区域大小等参数。
假设视点在坐标系下的坐标为(X,Y,Z),系统投影的边长为2D,视见体的远近裁剪面在坐标系下的坐标分别是-Zf和-Zn,可得视坐标系下前投影面的投影变换矩阵vmat:
vmat=■ 0-■0 0 ■ -■0 00 -■-■ 00 -1 0
同理可得,左投影面、右投影面和底面投影面的投影变换阵。
在OSG中,可用函数OSG_STEREO_MODE(enum)来实现立体图形的参数设置,其函数形式如下:
OSG_STEREO_MODE (enum)
OSG_STEREO_MODE
QUAD_BUFFER
ANAGLYPHIC
HORIZONTAL_SPLIT
VERTICAL_SPLIT
LEFT_EYE
RIGHT_EYE
HORIZONTAL_INTERLACE
VERTICAL_INTERLACE
图形绘制在显示卡的四帧缓存上,左眼图形绘制在左后帧,右眼图形绘制在右后帧,左后帧和左前帧的图形相交换,右后帧和右前帧的图形相交换。然后在左后帧和右后帧上分别绘制下一帧图形,依次循环,即可以生成立体图形。
4 总结
本文对基于立体显示技术的化学教学平台进行了研究,主要研究内容包括:对系统从整体上进行了结构分析,阐述了立体视觉参数的设置以及实现的方式,并对各投影通道图像的同步方法进行了讨论,最后分析使用OSG开发平台实现立体显示的化学教学平台的可行性,并给出了实现方法。
参考文献
1 申闫春等.基于OSG的三维仿真平台的设计与实现[J].计算机仿
真,2007(06)
2 石教英.虚拟现实基础及实用算法.北京:科学出版社,2002
3 黄万见等.偏振光眼镜(Polarization glasses)立体显示技术
4 林柏纬等.基于PC架构的高性能CAVE系统[J].计算机辅助设计
与图形学学报,2003-15-6