VR中的Redirection
在虚拟现实(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的更多相关文章
- VR中射线点击按钮的实现
VR中实现UI的Button点击,主要是需要实现IPointerClickHandler接口,因为在Unity将所有的按钮操作都封装成了相应的接口,需要相应的功能只需要去实现对应的接口就好了.在这里我 ...
- VR中为什么需要把游戏音频放在聚光灯里?
VR中为什么需要把游戏音频放在聚光灯里? 本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/de ...
- VR中的“寻路(wayfinding)”
虚拟现实(VR)中很重要的一个问题就是Locomotion(用户在VR中的移动).这个Locomotion分为两种,一种是点对点的,如传送门的方式,一种是包含了可以操控的中间过程的,这种被称为“导航( ...
- 什么是VR中的Locomotion?
Locomotion,本文中我称之为移位,是VR研究中最重要的话题之一.因为它属于VR中三大元老级操作(Selection选择,Manipulation操纵物体,Locomotion移位),其中,前两 ...
- 什么是VR中的vection?
Vection是VR领域的一个专有名词,其义指“在虚拟现实中给人带来‘移动’(self-motion)感觉的认知因素”1.也就是说,vection就是指那些给玩家带来“我正在这个虚拟环境中移动”这种感 ...
- 浅谈html5在vr中的应用
使用过HTML5制作动画过程的开发者都知道,HTML5页面给人一种逼真的感觉,同时HTML也是可以制作VR页面,但是需要你熟练HTML5与JavaScript开发过程,所以在有必要的情况下,我们可以用 ...
- VR中运动控制器的传送系统
创建一个VRPawn 新建一个BluePrint,父类选择Pawn,我们命名为VRPawn,打开它. 添加一个Scene命名为CameraRoot 在CameraRoot节点下添加一个Camera 在 ...
- 使用鼠标左键事件实现VR中的Eye Gaze Input
1.光标以及光标动画的显示 using System.Collections; using System.Collections.Generic; using UnityEngine; using U ...
- 期待中冷静前行,专家预测2017年VR产业5大发展趋势
VR在90年代火过一阵后,在2016年迎来了爆发.今年的VR领域,除了Oculus.HTC.索尼等发布的各家硬件,还有许多VR内容争奇斗艳的迸发,但是VR会一直保存热度吗? 事实上,对于科技圈巨头而言 ...
随机推荐
- CSS特效集锦:视觉魔法的碰撞与融合(二)
引言 长久以来,我认识到.CSS,是存在极限的.正如曾经替你扛下一切的那个男人,也总有他眼含热泪地拼上一切,却也无法帮你做到的事情,他只能困窘地让你看到他的无能为力,怅然若失. 然后和曾经他成长的时代 ...
- Fiddler 手机爬虫
Fiddler抓包工具 配置Fiddler 添加证书信任,Tools - Options - HTTPS,勾选 Decrypt Https Traffic 后弹出窗口,一路确认 ...from bro ...
- 字符串的api (基础)
一.基础 1.字符串.charAt(index) 根据下标获取字符串的某一个字符 应用: 判断字符串的首字母是否大写 任意给定的一串字母,统计字符串里面的大写字母和小写字母的个数 2.字符串.inde ...
- Junit测试Controller(MockMVC使用),以及传输@RequestBody数据解决办法
转自:http://www.importnew.com/21153.html 一.单元测试的目的 简单来说就是在我们增加或者改动一些代码以后对所有逻辑的一个检测,尤其是在我们后期修改后(不论是增加新功 ...
- Nginx使用GeoIP模块来限制地区访问
举例比如限制泰国地区的IP访问: 前提条件,安装了http geoip 或stream geoip模块的Nginx Plus或者开源nginx Maxmind的GeoLite Legacy数据库 1. ...
- (转载)非常完善的Log4net配置详细说明
一.前言 在项目中,对项目的日志收集是非常重要的,这里我就说说代码的异常日志收集.收集异常日志,有很多第三方成熟的框架,我这里就介绍一下我常用的Log4net. Log4Net介绍 Log4net 是 ...
- LeetCode第七题
Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 Have you ...
- zookeeper与kafka集群部署实现
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作.最终, ...
- NOIP2006 1.明明的随机数
题目:明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不 ...
- 大数据平台搭建 - cdh5.11.1 - spark源码编译及集群搭建
一.spark简介 Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎,Spark 是一种与 hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同 ...