谭剑波, 张光刘, 李 琳
(1.华东电子工程研究所,安徽合肥 230031;2.合肥工业大学计算机与信息学院,安徽合肥 230009)
在詹姆斯◦卡梅隆导演执导的3D技术创造的《阿凡达》带动下,相关产业发展迅速,各大显示设备硬件生产商,如德州仪器、三星、LG、优派等纷纷斥资研发新的 3D显示设备。在此基础上4D电影被提上日程,所谓4D电影是在3D立体电影的基础上加环境特效、动感座椅及其它特效辅助设备,形成下雪、下雨、闪电、烟雾等特效设备,用来营造一种与影片内容相一致的环境。随着影片内容的变化,观众可实时感受到下雨、振动、喷气、喷雾、拍腿等身边所发生与片中影像对应的事件,从而实现惊险刺激、身临其境的效果。4D电影也是一种用户与电影场景交互的体现,但限于设备的造价高,其应用并不十分广泛。
随着3D技术的日益发展和对各个领域不断的渗透,对立体显示所能带来的沉浸感和生动性的要求亟待提高;除了在视觉上给用户逼真的冲击之外,还可借助外围设备让用户与三维场景进行交互,为用户带来触觉上的有趣性[1]。本文基于此设想在被动立体显示环境中引入体感设备,并结合网球游戏实例进行分析。
19世纪30年代,英国物理学家查尔斯◦惠斯通(Charles Wheatstone)开始研究人的视觉,并于1838年发明了立体镜,此举拉开了人类对三维立体显示研究的帷幕。随着计算机信息领域的发展及平板显示器的出现,三维立体显示蓬勃发展。日本、韩国、欧美等国家从20世纪80年代开始了三维立体显示的基础研究,开发了各种技术和产品。国内的三维立体显示技术起步较晚,与国际先进水平存在一定的差距,但也有不少高校、研究所和企业对立体显示技术开展研究并取得了一些成果[2,3]。
立体视觉最根本性和最精细的线索及其神经机制是视差[4],这个事实由文献[5]把随机点立体图对RDS方法应用于立体视觉心理物理学实验后得到证实;文献[6]发现的皮层双眼性视差敏感神经细胞提供了神经生理学基础;文献[7]对双眼视差做了比较深入的研究,这也是目前大多数学者研究的方向;文献[8]通过试验发现,两眼视差在判断距离时是最重要的。
提起体感交互设备,不得不提到被誉为“电子娱乐界一年一度的奥林匹克盛会”的电子娱乐展(Electronic Entertainment Expo)。最近一次大会的最大看点便是3大游戏机巨头的新体感设备发布:日本老牌游戏厂商任天堂最新发布的“裸眼3D”掌上游戏机3DS、索尼发布的体感游戏控制器“PlayStation M ove”以及微软的 Xbox360 Slim。任天堂凭借W ii游戏主机的动作捕捉功能,力压微软Xbox360和索尼的PS3;拥有W ii游戏机的用户对着电视机,挥舞着手中的体感交互控制器,做着运动或者健身,如打高尔夫、保龄球等,W ii的传感器则捕捉用户的动作,虚拟投射到电视画面上。PS3以摄像头拍摄图像识别为基础,动作感应仍需要手柄来进行识别。除此之外,还有泰山在线的i-dong和速位公司的CyWee Z。
CyWee Z与老牌的W ii的手柄是左右手分持的造型不同,是由台湾速位互动股份有限公司开发的一种全能体感控制器。该控制器采用变型设计,可工作于2种模式,如图1所示。CyWee Z根据它的变型模式可工作于不同状态,处于图1a状态可作为射击、赛车类游戏交互设备;工作在图1b状态可作为网球、高尔夫球等球类游戏的交互设备。
图1 不同工作模式的CyWee Z
本游戏实例是基于被动立体设备所做的开发,也是偏光镜(polarization glasses)技术,系统结构如图2所示。
图2 系统结构
一个关键问题是如何设计一实例,既能在用户面前展现立体视觉的冲击又能让其感受到交互的有趣性。由于用户在投影与屏幕的空间所处的位置不同,观察所获得的立体效果也不同,因此为了更好地体现场景的立体效果,需要在实例场景中加入运动的物体,那么其运动轨迹的设计是另一关键问题。参数说明见表1所列,其形式化可描述为:
表1 参数说明
立体显示技术按其是否为双目视差工作原理可分为2大类:双目视差和非双目视差。双目视差是指人的双目之间存在一定的瞳距[9],因而在观看物体时左眼和右眼所接收到的图像略有差异。另外,还可根据立体显示具体实现方式的不同,分为红绿眼镜(anag lyph)、偏光眼镜(polarization glasses)、快门眼镜(shutter glasses)、头盔式显示器(HMD)和自由立体显示技术(autostereoscopic)等。
视差可分为水平视差和垂直视差,如图3所示。距离b即是人们两眼之间的距离,也就是人们所说的水平视差;左眼O1、右眼O2与观察物体之间所形成的夹角α称为视差角,当被观察的物体离视点越近,则视差角越大,两眼所接收到的视觉图像差别越大;反之则越小。
基于上述原理,根据投影面、人眼以及观察对象之间的相对位置,可有零视差、水平正视差和水平负视差之分。水平正视差:如果左眼图像L′位于银幕的左边,右眼图像R′位于银幕的右边,则像A凹进银幕在银幕后方成像。水平负视差:如果左眼图像L′位于银幕的右边,右眼图像R′位于银幕的左边,则像B凸起银幕在银幕的前方成像。水平正、负视差使人在视觉上产生了凹凸感和纵深感。
图3 视差
由图3可以看出,视差在立体显示效果中扮演着非常重要的角色。设虚拟双眼(投影机)的距离为L,焦距为f,场景空间任意一点(x,y,z)的视差公式为:
其中,L与f为常量,视差的值由物体所在空间的位置来决定,因而用户在不同的位置所观察出的立体效果会有所不同。
根据以上关键问题的提出以及立体原理所涉及的问题,在场景设计时,将场景元素分为静态元素与动态元素。静态元素也就是在整个游戏中处于静止状态的物体;动态元素就是运动的物体。
本实例场景静态元素由室内房间构成;动态元素由网球拍、网球构成。
(1)网球的运动轨迹设计。现实生活中网球的运动是加速运动,其整个运动轨迹呈抛物线,而且经过用户的球拍击打,网球由其受力方向飞离运动员,后最终受到地球引力的影响落到地面。为了仿真这个过程,选用向量工具来实现,网球的整个运动过程由速度、加速度向量来描述。由于在三维空间中,速度矢量为v(x,y,z),分量x的大小表示x轴上的速率,其符号表示 x轴上的运动方向,y与z同理;加速度矢量为a(x,y,z),分量x的大小表示x轴上的加速度大小,其符号表示在x轴的加速度方向,y与z同理;因而网球的位置以及运动方向可根据位移公式计算得到:
同时判断用户是否有挥动控制器的动作,如果有则根据挥动方向来改变其运动轨迹,并旋转球拍,让用户切身感受到交互的效果。
(2)网球与墙面的碰撞检测。实现碰撞检测将使用在光线跟踪算法中使用的规则。一条通过矢量描述的光线,其计算公式为:
其中,t是一个浮点数,取值为0~∞;矢量 p、s和n取值(x,y,z)。网球与墙面的碰撞检测实际上就是光线与平面相交的检测,一个平面可由以下的矢量来描述,即
其中,d是一个浮点数,描述了从坐标系的原点到法线平面的距离;◦表示矢量的点乘;矢量Xn、X分别表示平面的法线和该平面上一点。
联合(3)式、(4)式,求得:
如果t是负数,说明光线和平面没有交点,否则表明有交点。
(3)碰撞响应。为了计算对于一个静止物体的碰撞,需要知道以下信息:碰撞点、碰撞法线及碰撞时间。基于以下物理规律,即碰撞的入射角等于反射角,反射向量的计算公式为:
其中,R为反射向量;I为入射向量;N为法线向量。
碰撞响应如图4所示。
图4 碰撞响应
(4)动作映射m ap(x1,x2)。把CyWee Z游戏控制器与实例场景中的网球拍关联起来,将控制器动作映射到网球拍:用户手持控制器的左挥动作与右挥动作相应映射到球拍的动画,让用户体会到自己在游戏中所扮演的角色。
通过调节物体的距离、焦距可以改变视差值,并将虚拟左右眼图像通过OpenGL所提供的绘图接口绘制到窗口中。
根据以上计算公式及原理,利用VC6.0开发工具和OpenGL提供的3D图形接口实现实际算法,将程序移植到被动立体的设备。程序运行效果如图5所示,验证本文所提及立体效果的关联因素((1)式)是否正确,发现当用户手持体感设备在银幕与投影机之间改变位置,观察出其网球运动的立体效果不同,这一验证可为今后设计新的同类型游戏实例提供指导方法[10-12]。
图5 实际效果图
本文分析了立体视觉的实现原理、立体显示技术以及人机交互技术,构思出网球游戏将2种技术结合,充分展现立体视觉的魅力以及交互技术的有趣性。将程序移植到设备上进行测试,结果表明整体效果良好,与此同时也发现,其立体效果根据不同的观察位置、不同的观察角度会有不同的立体效果;根据(2)式调整物体的距离也会影响到整体的立体效果。
进一步的研究工作是丰富场景元素以及交互游戏规则,使得场景看起来更加美观,用户交互更加有趣。
本文初稿首次刊登于《计算机技术与应用进展◦2010》
[1] 柳克俊.关于人机交互人机和谐环境的思考[J].计算机应用,2005,25(10):2226-2227.
[2] 贾正根.立体显示技术进展[J].光电子技术,2001,21(4): 267-271.
[3] 王琼华,王爱红.三维立体显示综述[J].计算机应用,2010,30(3):579-581,588.
[4] 葛霁光.立体视觉深度认知机理研究[J].科学技术与工程,2004,4(6):467-469.
[5] Julesz B.Stereoscopic vision[J].V ision Research,1986,26 (9):1601-1612.
[6] Bisbop P O,Pettig rew JD.Neu ralmechanism s of binocular vision[J].V ision Research,1986,26(9):1587-1600.
[7] Foley JM.Binocular distance perception[J].Psychological Review,1980,87(5):411-434.
[8] Ware C,Franck G.Evaluating stereo and motion cues for visualizing information nets in three dim ensions[J].ACM Transactions on G raphics,1996,15(2):121-140.
[9] ¯Okoshi T.Three dimensional imaging techniques[M].New York:Academ ic Press,1976:103-303.
[10] NeH e.OpenGL教程[EB/OL].[2010-09-10].http://nehe.gam edev.net.
[11] Shreiner D,W oon M.OpenG L编程指南[M].第6版.北京:机械工业出版社,2006:228-273.
[12] 黄 忠,张佑生.基于约束四叉树的真实感地形绘制[J].合肥工业大学学报:自然科学版,2008,31(6):854-857.