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会一直保存热度吗? 事实上,对于科技圈巨头而言 ...
随机推荐
- Joyful HDU - 5245 概率问题
Sakura has a very magical tool to paint walls. One day, kAc asked Sakura to paint a wall that looks ...
- SPOJ - 3267. D-query 主席树求区间个数
SPOJ - 3267 主席树的又一种写法. 从后端点开始添加主席树, 然后如果遇到出现过的元素先把那个点删除, 再更新树, 最后查询区间就好了. #include<bits/stdc++.h& ...
- HZNU Training 2 for Zhejiang Provincial Collegiate Programming Contest 2019
赛后总结: T:今天下午参加了答辩比赛,没有给予队友很大的帮助.远程做题的时候发现队友在H上遇到了挫折,然后我就和她们说我看H吧,她们就开始做了另外两道题.今天一人一道题.最后我们在研究一道dp的时候 ...
- Visual Studio 调试 —— 附加到进程(远程服务器)
一般在部署环境下不会有 Visual Studio 开发工具的,所以需要有 Remote Debugger(远程调试器) 才可以进行远程调试. Remote Debugger 获取 方法一:Visua ...
- 033 模块4-PyInstaller库的使用
目录 一.PyInstaller库基本介绍 1.1 PyInstaller库概述 1.2 pip的使用 1.3 pip install pyinstaller (cmd命令行) 二.PyInstall ...
- 人体行为识别(骨架提取),搭建openpose环境,VS2019(python3.7)+openpose
这几天开始接触人体行为识别,经过多方对比后,选择了现在最热的人体骨架提取开源库,openpose. 下面就不多说了,直接开始openpose在win10下的配置: 需求如下:1. VS2019 ...
- 百度地图WEB端判断用户是否在网格范围内
在pc端设置商家的配送范围,用户在下单时,根据用户设置的配送地点判断是否在可配送范围内,并给用户相应的提示. 下面说下我的实现思路: 1.用百度地图在PC端设置配送范围,可拖拽选择 2.根据用户设置的 ...
- Go微服务全链路跟踪详解
在微服务架构中,调用链是漫长而复杂的,要了解其中的每个环节及其性能,你需要全链路跟踪. 它的原理很简单,你可以在每个请求开始时生成一个唯一的ID,并将其传递到整个调用链. 该ID称为Correlati ...
- 渐进深入理解Nginx
文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. 之前其实写过一篇文章具体介绍过:最基础的Nginx教学,当时有提到过Nginx有一个重要的功能:负载均衡.所以 ...
- python+selenium十:selenium的二次封装
python+selenium十:基于原生selenium的二次封装 from selenium import webdriverfrom selenium.webdriver.support.w ...