在虚拟现实(Virtual Reality,VR)中,很重要的一点就是用户的在虚拟环境中的漫游(navigation)。除了固定视点的VR电影,一般的VR应用,特别是游戏或者其他交互式的应用,都会依赖于用户在虚拟环境中不断的移动、改变视角来带来探索的体验。当下VR应用中,最流行的漫游方式有两种:一种是使用“传送门”,比如玩家用手柄在3D空间中直接选择目的地,系统就会把玩家直接传送到被选择的地方;一种是一比一的实际的移动,用户在房间里走一步,在虚拟的环境中就走一步,这一般需要更强一些的硬件支持,比如HTC Vive的Lighthouse定位器,并且需要较大的实际空间。两种方式可以结合起来,短距离内的移动使用一比一的移动方式,长距离的移动使用传送门的方式。

VR系统中一个很大的问题或者挑战就是,在有限的实际空间下,如何让玩家能进行虚拟空间里的无限漫游。今天要说的Redirection(又叫directed walking)1就是一个有趣的解决思路。Redirection是“重定向”的意思。它的目的是让玩家在有限的空间内能够“无限地行走”,而不会撞墙。

Bruder et al. 2015

那它是如何实现的呢?请看上图1,图中玩家在虚拟环境中走直线,然而在实际环境中,他走的是一个曲线,这样当他快要走到房间尽头时,他已经调转了方向,避免了撞墙。原来系统当监测到用户离墙边越来越近时,就会缓慢地偏移整个的虚拟环境,让用户自主地调整了他的行走方向,形成路径的偏移,来避免走到房间尽头。其实它的本质就是让用户自己在无意识的情况下,走回房间中间,不要走出现实区域。例如南加州大学的MxR实验室1曾给记者做了一个实验,让记者带上oculus头戴,在虚拟现实中从一个科幻走廊的一头,走向另一头。记者一直以为自己走的是直线,但是当他完成体验取下头盔的时候才发现,自己已经几乎转向了完全相反的方向2

当然这只是一个例子。下面来列举一下当前学者们提出的一些redirection的方法:

1. 通过旋转,改变玩家的前进方向3。其中,迈阿密大学的Hodgson等人指出了两种思路4。第一种是steer-to-center,即是让玩家在过程中,始终向物理空间的中心偏移。第二种是steer-to-orbit,刚刚所举的例子就符合这一种类型,即是当玩家靠近空间边缘时,让玩家偏移回房间内部,好像在物理环境中绕圈一样。Hodgson等人的研究指出,steer-to-center的方式比较适合相对开放、广阔的虚拟环境4,而steer-to-orbit对于相对封闭的虚拟环境更为合适3

Bruder et al. 2015

2. 巧用物体将用户带离(redirection metaphor)

旋转:变化的门,旋转的书架;

传送:传送光,飞鸟(将用户带离),电梯。

3. 巧妙设计空间

不可能的空间:重叠的房间x

动态生成的走廊。

4. 其他的奇思妙想

圆柱形的墙和无限的走廊y


1 南加州大学 MxR实验室。http://projects.ict.usc.edu/mxr/

2 Tested 专访USC MxR实验室。https://www.youtube.com/watch?v=XOxmMurUv3Q。last accessed Jan 10th, 2018

3 Bruder, Gerd, Paul Lubas, and Frank Steinicke. "Cognitive resource demands of redirected walking." IEEE transactions on visualization and computer graphics 21.4 (2015): 539-544.

4 Hodgson, Eric, Eric Bachmann, and Tyler Thrash. "Performance of redirected walking algorithms in a constrained virtual world." IEEE transactions on visualization and computer graphics 20.4 (2014): 579-587.

5 Hodgson, Eric, and Eric Bachmann. "Comparing four approaches to generalized redirected walking: Simulation and live user data." IEEE transactions on visualization and computer graphics 19.4 (2013): 634-643.

x Paludan, Anders, et al., Investigating spatial illusions in virtual reality environments, https://www.youtube.com/watch?v=T6Zrjz_hu8I&feature=youtu.be

y Matsumoto et al., Siggraph 2016 Unlimited corridor: redirected walking techniques using visuo haptic interaction. https://www.youtube.com/watch?v=THk92rev1VA&feature=youtu.be

VR中的Redirection的更多相关文章

  1. VR中射线点击按钮的实现

    VR中实现UI的Button点击,主要是需要实现IPointerClickHandler接口,因为在Unity将所有的按钮操作都封装成了相应的接口,需要相应的功能只需要去实现对应的接口就好了.在这里我 ...

  2. VR中为什么需要把游戏音频放在聚光灯里?

    VR中为什么需要把游戏音频放在聚光灯里? 本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/de ...

  3. VR中的“寻路(wayfinding)”

    虚拟现实(VR)中很重要的一个问题就是Locomotion(用户在VR中的移动).这个Locomotion分为两种,一种是点对点的,如传送门的方式,一种是包含了可以操控的中间过程的,这种被称为“导航( ...

  4. 什么是VR中的Locomotion?

    Locomotion,本文中我称之为移位,是VR研究中最重要的话题之一.因为它属于VR中三大元老级操作(Selection选择,Manipulation操纵物体,Locomotion移位),其中,前两 ...

  5. 什么是VR中的vection?

    Vection是VR领域的一个专有名词,其义指“在虚拟现实中给人带来‘移动’(self-motion)感觉的认知因素”1.也就是说,vection就是指那些给玩家带来“我正在这个虚拟环境中移动”这种感 ...

  6. 浅谈html5在vr中的应用

    使用过HTML5制作动画过程的开发者都知道,HTML5页面给人一种逼真的感觉,同时HTML也是可以制作VR页面,但是需要你熟练HTML5与JavaScript开发过程,所以在有必要的情况下,我们可以用 ...

  7. VR中运动控制器的传送系统

    创建一个VRPawn 新建一个BluePrint,父类选择Pawn,我们命名为VRPawn,打开它. 添加一个Scene命名为CameraRoot 在CameraRoot节点下添加一个Camera 在 ...

  8. 使用鼠标左键事件实现VR中的Eye Gaze Input

    1.光标以及光标动画的显示 using System.Collections; using System.Collections.Generic; using UnityEngine; using U ...

  9. 期待中冷静前行,专家预测2017年VR产业5大发展趋势

    VR在90年代火过一阵后,在2016年迎来了爆发.今年的VR领域,除了Oculus.HTC.索尼等发布的各家硬件,还有许多VR内容争奇斗艳的迸发,但是VR会一直保存热度吗? 事实上,对于科技圈巨头而言 ...

随机推荐

  1. JVM中class文件探索与解析

    一直想成为一名优秀的架构师的我,转眼已经工作快两年了,对于java内核了解甚少,闲来时间,看看JVM,吧自己的一些研究写下来供大家参考,有不对的地方请指正. 废话不多说,一起来看看JVM中类文件是如何 ...

  2. Keras(六)Autoencoder 自编码 原理及实例 Save&reload 模型的保存和提取

    Autoencoder 自编码 压缩与解压 原来有时神经网络要接受大量的输入信息, 比如输入信息是高清图片时, 输入信息量可能达到上千万, 让神经网络直接从上千万个信息源中学习是一件很吃力的工作. 所 ...

  3. testlink+vertrigoServ搭建测试用例管理系统

    1.testlink简介 Testlink是一个开源的基于web的测试用例管理系统,主要功能是测试用例的创建.管理和执行,并且提供了一些简单的统计功能. 目前的公司没有专用的测试用例管理系统,为了测试 ...

  4. 题解 CF499A 【Watching a movie】

    题意 看一部电影,从第一分钟开始看,你每次可以按下快进键,快进x分钟,电影有n个精彩片段,问看到所有精彩片段至少需要看多少分钟电影.(数据保证能看到所有精彩片段) 我们可以发现答案其实 就是间隔时间% ...

  5. Shiro实现用户对动态资源细粒度的权限校验

    前言 在实际系统应用中,普遍存在这样的一种业务场景,需要实现用户对要访问的资源进行动态权限校验. 譬如,在某平台的商家系统中,存在商家.品牌.商品等业务资源.它们之间的关系为:一个商家可以拥有多个品牌 ...

  6. Mysql高手系列 - 第8篇:详解排序和分页(order by & limit),及存在的坑

    这是Mysql系列第8篇. 环境:mysql5.7.25,cmd命令中进行演示. 代码中被[]包含的表示可选,|符号分开的表示可选其一. 本章内容 详解排序查询 详解limit limit存在的坑 分 ...

  7. 树莓派4B 安装CentOS

    刚入手了一个树莓派4B替换掉旧的3B搭Nas.吐槽下3B的网卡和USB速度真的太慢. 虽然官方推荐的是Debina,由于习惯了CentOS不想增加学习成本,我还是决定用CentOS. 镜像下载地址:h ...

  8. android 和h5互调步骤

    1. Android 中调用JS 假如:H5页面中有一段如下JS代码 function h5Test(str){ xxxx... xxxx... } Android中调用方式如下: 步骤一: 启动支持 ...

  9. shell中sh, exec, source, fork, ./的区别

    shell中sh, exec, source, fork, ./的区别 1,sh sh test.sh ​ sh是通过创建子进程(subshell)去执行脚本,父进程无法使用子进程中的变量,而子进程对 ...

  10. py-faster-rcnn的常见错误

    在py-faster-rcnn配置运行faster-rcnn-end2end-VGG-CNN_M_1024的过程中, 执行命令:./experiments/scripts/faster_rcnn_en ...