APP下载

虚拟现实视角下三维全景漫游系统之虚拟交互实现

2023-12-05王家骐于海霞

科技创新与应用 2023年34期
关键词:交互技术漫游全景

王家骐,于海霞

(1.安徽工贸职业技术学院计算机信息工程系,安徽 淮南 232007;2.合肥职业技术学院信息工程与传媒学院,合肥 230012)

随着计算机硬软件技术和网络通信技术的高速发展,虚拟现实(Virtual Reality,VR)技术正在广泛应用于多个生活和娱乐领域。VR 即是设计和实现一个仿真的虚拟三维世界,可向使用者提供视、听、触等多种感官仿真,为使用者提供身临其境的感受和体验。

三维全景漫游作为VR 的一个重要应用方向,其本质就是指通过交互技术浏览由全景图像构建的三维全景空间里各个场景。三维全景漫游的特点是:三维,即是将二维平面图像经过特定的方法和算法合成为三维场景,即可淋漓尽致地展现场景的立体效果,随着技术的进步和提升虚拟出的场景将会与真实场景几乎一模一样;全方位,即在一个球体内表面或者立方体表面粘贴漫游的全部场景,实现360°范围内全区域场景展示,使观察到的场景信息更加丰富和全面;漫游,即是场景画面可以通过人机交互操作实现上下、左右、前后和远近等动作并能及时实现场景画面的更换,通过人机交互可任意进行场景画面的浏览和拖放,从而具备良好的人机交互性能。

三维全景漫游的实现通常会涉及到一个重要的关键技术,即三维场景的漫游交互实现。该技术可让用户通过必要的交互设备,以自然的方式在虚拟三维场景中漫游交互,使用户能够自由观察和体验三维虚拟环境,并在虚拟三维场景里进行空间切换浏览不同场景,让用户能够完全沉浸在由计算机创造的虚拟环境中[1-2]。

1 虚拟交互概述

应用虚拟交互可使用户对三维全景场景中的物体对象实施相关操作,且能立即将物体对象的变化信息反馈给用户,根据交互对象的不同,当前主要的虚拟交互实现技术可以分为直接交互、物理交互和虚拟控制交互3 种[3-9]。

直接交互技术,是应用手势识别等交互技术将用户在现实场景中的各类动作映射到虚拟的三维全景场景环境中,即在三维全景场景环境中会对用户在现实场景中的操作动作做出直接响应。

物理交互技术,利用操纵杆、手柄及方向盘等的物理设备实现与虚拟三维全景场景环境的交互,此种方式的交互能通过设备的反馈信号(如震动、摇摆),从而增强用户的沉浸感。

虚拟控制交互技术,利用一些虚拟控制来操作物体(如人物),具体来说就是通过定义一些如表示运动方向与动步长的虚拟按钮,通过如视点交互来实现物体的操作。其缺点非常明显:缺少触觉反馈,致使沉浸感缺乏,且交互困难。

虚拟交互的目的就是在三维全景场景里模拟对现实世界的物体进行各种操作,如搬运物体、四方行走、仰视俯视等,并能够得到及时的信息反馈。应用虚拟交互,在适合的硬件设备支持下,实现用户与三维全景漫游场景间的交互操作,且可以更好地提高用户在三维全景场景漫游时的强烈临场感和多触觉感知。

2 虚拟交互的技术实现

在三维全景场景漫游过程中对物体对象的拾取、移动、旋转和缩放,是虚拟交互最基本的具体实现方式。其中对象拾取操作即是在场景里选中某场景元素,是整个虚拟交互的基础,是所有交互中不可缺少的环节,因为只有在对象拾取后才能实施其余的移动、旋转和缩放3 种交互。平移旋转操作是实现虚拟三维全景场景中实体对象的位置变化。旋转操作是实现虚拟三维全景场景中实体对象的方向变化。缩放操作是通过改变场景对象的大小从而实现虚拟场景对象间的协调比例关系的变更[10-12]。

2.1 对象拾取的实现

射线拾取算法是在三维全景场景中实现实体对象拾取的一种常用算法,其基本工作原理是:当用户鼠标等输入设备触发计算机屏幕某个点位时会被自动获取当前屏幕的点位坐标,应用坐标转化的方式将该点位的屏幕坐标转化为视口坐标,并添加该点的深度值,经过逆运算得到该屏幕点的三维空间坐标;再用该视点位置作为起点,做射线,计算此射线是否与三维全景场景中的实体对象相交,若有相交交点,则该对象被拾取,若无交点,则该对象未被拾取。

具体的实现步骤如下。

1)获取屏幕上的点,将该点的坐标进行转化得到该点对应的视口坐标。实现坐标转化的部分关键代码如图1 所示。

图1 坐标转化的部分关键代码

2)发射一条从视点坐标开始的射线。

3)将该射线与视点矩阵相乘,并对结果进行转置,成为转置矩阵。变换后,射线将与虚拟三维全景场景在同一坐标系中。

4)判断该射线与虚拟三维全景场景中的实体对象相交情况,被穿过的实体对象模型就是二维屏幕上被拾取的实体对象。

5)实现拾取操作的关键代码如图2 所示。

图2 实现拾取操作的关键代码

2.2 移动、旋转和缩放的实现

在虚拟三维全景场景中对一个实体对象做移动、缩放和旋转的操作是通过在二维变换基础上增加Z轴组成的几何变换来实现的,其通过4*4 的矩阵来实现几何变换运算。在虚拟三维全景场景中,实体对象移动变换的基本工作原理是在实体对象三维坐标方向做移动距离三维变换向量的几何变换运算;缩放变换的基本工作原理是通过放缩因子进行几何变换运算来实现;旋转变换的基本工作原理是通过在给定轴方向和旋转角度建立起的一个总旋转矩阵。

2.2.1 移动变换

设实体对象位置为(x,y,z),对实体对象做移动变换,设在x,y,z3 个方向轴上的平移量分别为Tx,Ty和Tz,设计算结果为(x1,y1,z1),则可以按照图3 所示的公式计算。

图3 移动变换公式

实现移动变换的关键代码如图4 所示。

图4 实现移动变换的关键代码

2.2.2 缩放变换

设实体对象的缩放点位置为(xi,yi,zi),则缩放变换的计算公式如图5 所示。

图5 缩放变换公式

实现缩放变换的关键代码如图6 所示。

图6 实现缩放变换的关键代码

2.2.3 旋转变换

设实体对象在右手坐标下,若给定的P点坐标为(x,y,z)=(rcosϕ,rsinϕ,z),则在将该点沿着Z轴旋转α角度后,得到的旋转变换公式计算如图7 所示。

图7 Z 轴旋转变换公式

沿着Y轴旋转变换公式计算如图8 所示。

图8 Y 轴旋转变换公式

沿着X轴旋转变换公式计算如图9 所示。

图9 X 轴旋转变换公式

实现旋转变换的关键代码如图10 所示。

4 结束语

虚拟交互的目的就是在三维全景场景里模拟对现实世界的物体进行各种操作。本文主要介绍了在三维全景场景中实现虚拟交互的3 种技术方式,分别是直接交互、物理交互和虚拟控制,并概要地介绍其基本工作原理。接着着重介绍虚拟交互最基本的拾取、移动、旋转和缩放4 种具体实现方式,分别阐述了实现此4种操作的几何变换过程及在程序设计中实现相关功能的关键代码。

实现虚拟交互的方法和设备是随着技术的持续发展而不断变革的,这些技术包括但不仅限于眼球追踪技术、动作捕捉技术、肌电模拟技术、触觉反馈技术、语音交互技术、方向追踪技术、光学跟踪技术、数据手套技术、传感器技术及脑电波控制等技术,这些先进技术的发展将会使虚拟交互产生无限可能。

猜你喜欢

交互技术漫游全景
体感交互技术在脑卒中康复中的应用
戴上耳机,享受全景声 JVC EXOFIELD XP-EXT1
虚拟交互技术系统的优势与应用分析
智能语音交互技术在媒体的应用和前景
VR交互技术在中小学拓展课程中的应用
全景敞视主义与侦探小说中的“看”
霹雳漫游堂
从5.1到全景声就这么简单 FOCAL SIB EVO DOLBY ATMOS
全景搜索
NASA漫游记