虚拟现实的核心技术与未来趋势
第一类的方法重点在于静态物体的重迭测试。当两个物体占据同一个空间,则这两个物体重迭,碰撞已发生。对物体存在的环境作空间分割来判断是一个直观的加速办法,如均匀空间分割法(uniform space subdiVision)[26]︰将空间分成一个个大小固定的子空间(cell),一旦有两个物体同时占据一个子空间,则它们很有可能重迭,再做进一步的计算。另外也有八元树(octree)[20] 的分割的方式,将空间作阶层式的分割形成一棵八元树;当在分割的过程中,假如有一子空间中的物体数小于某个值,则不再分割下去,而作进一步的重迭测试;反之继续分割。还有其它阶层式的分割的方式,如k-d tree及以BSP为基础的分割方式等等;此外,物体也利用具有阶层式架构表示物体几何数据,并以球或六面体当作各子物体的包围体(bounding volume)[14,20,30],如此当发现物体位于同一个子空间中要计算两者是否重迭时,可以利用其包围体快速地把没有重迭的物体对去除。若物体对之包围体重迭,则继续检查其子物体对。
在第二类的方法中,有人将物体的轨迹参数化,并以数值求根法(root-finding)求碰撞点 [7,19],但很费时。目前已提出利用碰撞预测的方式来加速连续时间碰撞侦测 [4]。一物体对之碰撞预测时间为其球形包围体(bounding sphere)间之碰撞时间。碰撞预测的时间经排序后大致仿真真实碰撞的顺序。所以从此排序最先的物体对作碰撞侦测,若真正碰撞时间在第二对预测时间之前,则我们已经找到最先碰撞的物体对;否则,我们只需计算第二对的真正碰撞时间,并与第一对碰撞时间相比。若碰撞预测足够准确,我们只需计算前面几对即可求得最先碰撞的时间。而一对物体之真正碰撞时间计算中,我们可以将物体各自分解成子物体,再计算子物体对之碰撞时间并求取最小者,此法可以递归方式做下去。另外,我们亦可对子物体对做碰撞预测,且将预测时间纳入全景物体对碰撞预测时间之排序,即我们将子物体视为一般物体。这两种做法,每一物体需有一阶层式树状架构包围体(bounding volume tree)以方便做分解。
8、影像式虚拟现实
在一般的虚拟漫游环境中,多是用前所述的3D绘图方式实行。然而,如果漫游的范围广大,环境景观复杂,为了求得逼真的效果,需要建构内含多达数十万甚至数百万个多边形的模型。在每秒至少需24次更新频率的要求下,也只有超级计算机可能办到,这对于虚拟现实的普及化来说实在不是个好消息。这种情形下,遂有另一种解决方式,就是影像式虚拟现实。
影像式虚拟现实的观念很简单。假设我们在一个蒙古包内,而蒙古包内壁贴满了蒙古包四周的风景照片,如果照片贴得天衣无缝,看上去就和没有这个蒙古包是一样的。为了要将照片贴得天衣无缝,拍摄取景时要留意特别留下重复部份,以便将图接合。当然,接图时也要用一些算法将图形作些变形,才能接得顺畅。此外,台大资讯工程系的影像式虚拟现实(Photo VR)为例,利用锯齿线平滑技术(anti-aliasing),使静态画面质量更好。除了环状接合,球状接合能使天空及脚底都清楚呈现出来。
至于图片的接合,我们假设来源照片都是标准的透视投影,相机焦距不变,且每张照片中心都在同样的水平高度上。利用影像比对(image matching)可以算出两张照片的重复部份,将之消去,并将影像柔化(smoothing)以消除两张像片间的亮度差异。当然,原始影像质量仍然要尽量好,以增进接图后的质量。
目前,这方面的产品有Apple的QuickTime VR, RealSpace的RealVR及工研院电通所的PanoVR。此种做法已成功的用到静态环境,如美术馆/博物馆的浏览系统。而此做法若要成功的用到其它VR应用,必须能有效的处理使用者与场景或场景内物体间的互动,且必须去除使用者参观路径之限制,这些应用皆需利用深度数据计算遮蔽性消除。这是目前尚待努力突破的。
9、网络虚拟现实
以前虚拟现实主要是以单机为主,随着Internet的发展,现在最热门的虚拟现实应用也向网络化迈进,目前之应用以网络漫游及网络会议为主。在网络会议方面,现在可以透过网络,将与会者的脸的影像传输以让其它人能透过HMD看到,并可任选虚拟场景,甚至可以将参与者的动作也显现出来。此外,MPEG-4也以视讯会议为导向,计划用模型的方式,大幅减少频宽需求,这方面的研究还在持续中。网络漫游,较大的问题在于使用的人数,要能让这些人所见能同步,人数越多需要的计算就越多。而前面所说的影像式VR也常用在网络 VR的应用中。
另一方面,以战争仿真及网络游戏为主的应用都少不了DIS(Distributed Interactive Simulation)的通讯协议。美国军方首次试验在一千多个不同地点的计算机进行海陆空联合模拟





