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会一直保存热度吗? 事实上,对于科技圈巨头而言 ...
随机推荐
- Mysql主从同步配置方案(Centos7)
最近在做项目高可用时,需要使用数据同步.由于只有双节点,且采用主主同步可能存在循环同步的风险,故综合考虑采用Mysql主从同步(Master-Slave同步). 可能没有接触过Mysql数据同步时,可 ...
- 解决vs2013中MVC/WebApi不显示添加区域菜单选项
在构建项目过程中,安装各种package或者卸载的过程中,导致了添加区域菜单选项不显示,导致后面无法添加区域. 在网上查找各种资料,发现原来是工程文件(项目名.csproj)缺少mvc引用. 工程文件 ...
- 【牛客Wannafly挑战赛12】 题解
传送门:https://www.nowcoder.com/acm/contest/79#question 说是比赛题解,其实我只会前三题: 后面的一定补 T1 题意,在一个长度为n的时间内,问如何选择 ...
- Atcoder C - +/- Rectangle(思维+构造)
题目链接:http://agc016.contest.atcoder.jp/tasks/agc016_c 题解:挺简单的构造,很容易想到的构造方法就是(h*w)的小矩阵里其他值赋值为1,最后一个赋值为 ...
- CODE[VS] 1294 全排列
1294 全排列 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 给出一个n, 请输出n的所有全 ...
- 51nod 1020 逆序排列(dp,递推)
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1020 题意:是中文题. 题解:很显然要设dp[i][j]表示 ...
- 2018年全国多校算法寒假训练营练习比赛(第二场) B TaoTao要吃鸡 01背包变形题
链接:https://www.nowcoder.com/acm/contest/74/B来源:牛客网 Taotao的电脑带不动绝地求生,所以taotao只能去玩pc版的荒野行动了, 和绝地求生一样,游 ...
- DevExpress的GridView,为每行的动态绑定不同的RepositoryItemLookUpEdit
有时需要动态为RepositoryItemLookUpEdit绑定数据源,比如联动选择的场景或者我们仅仅是需要一个下拉选择框而并不想要GridView的列与RepositoryItemLookUpEd ...
- Salesforce LWC学习(六) @salesforce & lightning/ui*Api Reference
上一篇中我们在demo中使用了很多的 @salesforce 以及 lightning/ui*Api的方法,但是很多没有细节的展开.其实LWC中针对这些module提供了很多好用的方法,下面对这两种进 ...
- java中public,private,protected和default的区别
类中的数据成员和成员函数据具有的访问权限包括:public.private.protect.default(包访问权限) 作用域 当前类 同一package 子孙类 其他pac ...