虚拟现实中自由步行(free-space walking)
之前我们讲到了虚拟现实中漫游方式的分类。虚拟现实中的漫游(travel/navigate)方式,即是应用提供给用户的,在虚拟环境中移动的方式。虚拟现实的漫游方式中,有一种被称为“完全动作线索”1,即用户需要用真实的、完全的步行动作,来进行虚拟环境中的漫游。比如本篇要提到的自由步行(free-space walking)。
自由步行即使用户能够在一定的空间内自由的走动,他/她的移动会被系统记录,并且反映到他/她在虚拟环境中的移动上。其优势就是整个的交互和现实生活中是一样的,所以非常自然,不需要学习,也不太可能导致晕动症。但是它对定位技术有相当的要求,需要在3D空间中的准确定位,所以一般会让用户佩戴一些多余的设备(电线、背包、捆绑在身上的定位装置等),所以也并非完全“自由”,会导致一些略显尴尬体验。同时,以当前的技术,自由步行一般只能限制在一个小区域中,如果需要漫游的虚拟区域很大,也不能完美处理。并且,自由步行也会消耗用户体力,使得用户使用应用时会更容易疲惫。
根据Kruij和Riecke教授在IEEE VR会议上的讲座1,自由步行技术也有一些不同的类别。其中,第一种类别是当前主流的方式,在行业中广泛地被应用,后两种是为了解决第一种方式存在的空间受限的问题,属于较为实验性的、在学术研究中被提出的方式。
1. 真实的步行 real walking

SteamVR, HTC Vive setup. image from https://www.wareable.com/vr/htc-vive-review
用户往前走一步,在虚拟环境中就往前走一步,用户往左转多少角度,在虚拟环境中就往左转。完全的一一对应,现实环境中用户在什么位置,虚拟环境中用户就相应的在什么位置。这是当前大部分应用采用的方式。不过由于受限于房间大小,或者准确的说,能够被定位到的区域的大小,所以如果只采用这一种交互方式的话,很难让用户在虚拟环境中,能够漫游到超出定位区域的地方。大部分应用采取的方式有:“传送门”(直接将用户传送到另一个空间)、驾驶式漫游(用户使用某交通工具进行漫游,实际上在现实空间中用户呆在原地)。不过,勇于思考和探索学者们还提出了以下两种类别的自由步行:
2. 重定向处理的步行 redirected walking
可以理解为,当系统发现用户要离开可监测区域的时候,做一些事情来让用户不要离开。比如当用户走动时,让虚拟环境缓缓地改变方向,使得用户慢慢改变前进方向,但是还以为自己仍然在“走直线”2,3。或者当用户快走出去的时候,用一些物体、事件吸引用户的注意力,使得用户走回监测区域中间3,4。也有不只是让用户在“撞了南墙”才回头,而是在整个过程中一直不停缓慢改变虚拟环境,让用户只围绕环境中间走动,等等方式。如果要在用户缓慢地改变虚拟环境的方向,那么改变的速度必须非常慢,否则用户会意识到运动方向的改变,导致认知冲突。当前研究表明,如果要让用户行走时旋转角度不同,大概可以是比真实旋转速度高25%或低33%以内5。

Bruder et al. 2015
3. 缩放处理的步行 scaled walking
这个方式通过名字也比较好理解,就是把用户现实中的步长,在虚拟环境中做一个缩放(扩大)。使得用户在虚拟环境中走了12米,在现实中只走了10米。同样的,这个缩放的比例也是不能太夸张,虚拟的移动可以比真实的移动少12%或者多35%以内5。
1 Kruij E, Riecke BE. Navigation interfaces for virtual reality and gaming: Theory and practice. In Virtual Reality (VR), 2017 IEEE 2017 Mar 18 (pp. 433-434). IEEE. http://ispace.iat.sfu.ca/project/vr-navi-tutorial/
2 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.
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 Razzaque, Sharif, Zachariah Kohn, and Mary C. Whitton. "Redirected walking." Proceedings of EUROGRAPHICS. Vol. 9. 2001.
5 Steinicke, Frank, et al. "Estimation of detection thresholds for redirected walking techniques." IEEE transactions on visualization and computer graphics 16.1 (2010): 17-27.
虚拟现实中自由步行(free-space walking)的更多相关文章
- myeclipse中解决 java heap space/gc overhead limit exceeded eclipse 的方法
在Eclipse打包的时候报错:gc overhead limit exceeded eclipse 原因是Eclipse默认配置内存太小须要更改安装Eclipse目录下的eclipse.ini文件. ...
- Win32下 Qt与Lua交互使用(四):在Lua脚本中自由执行Qt类中的函数
话接上篇.通过前几篇博客,我们实现在Lua脚本中执行Qt类中函数的方法,以及在Lua脚本中连接Qt对象的信号与槽. 但是,我们也能发现,如果希望在Lua脚本中执行Qt类的函数,就必须绑定一个真正实现功 ...
- 学以致用二十四-----shell脚本中的列表及space
1.接触列表的概念是在pyhon中,殊不知在shell中也是有列表的. 如: 结果 列表的下标和python中一样,也是以0开头 注意 list 和list2 的区别 一个是用括号括起来,一个是用 ...
- 关于Keil C51中“ERROR L107: ADDRESS SPACE OVERFLOW ”的总
最近写一个关于单片机播放音乐的程序,出现如下错误: *** ERROR L107: ADDRESS SPACE OVERFLOW ... ... Program Size: data=167.6 xd ...
- 虚拟现实中的Motion Sickness晕动症问题 - VIMS
虚拟现实(VR)中的晕动症 - VIMS 在玩VR的时候,很多玩家都遇到过发晕恶心等症状,这就是晕动症(Motion Sickness,以下或简称MS).MS并不是VR特有的问题.我们在坐船.坐车.坐 ...
- android studio 使用 jni 编译 opencv 完整实例 之 图像边缘检测!从此在andrid中自由使用 图像匹配、识别、检测
目录: 1,过程感慨: 2,运行环境: 3,准备工作: 4,编译 .so 5,遇到的关键问题及其解决方法 6,实现效果截图. (原创:转载声明出处:http://www.cnblogs.com/lin ...
- 在Eclipse中显示空格(space)和制表符(tab)
显示空格(space)和制表符(tab)设置: Window->Preferences->General->Editors->Text Editors->Show whi ...
- 在SurfaceView中自由书写和擦除
/////////继承SurfaceView 的类 public class PaintView extends SurfaceView implements Runnable,SurfaceHold ...
- 内核驱动程序中如何读写user space的文件,方便调试程序
需要在Linux kernel--大多是在需要调试的驱动程序--中读写文件数据.但是在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主要有: filp_open() f ...
随机推荐
- JIRA中的核心概念
转载自:http://blog.csdn.net/zhengxy2011/article/details/6940380 1.1.1 问题 JIRA跟踪问题(Issue),这些问题可以是bug,功 ...
- HDU-3507Print Article 斜率优化DP
学习:https://blog.csdn.net/bill_yang_2016/article/details/54667902 HDU-3507 题意:有若干个单词,每个单词有一个费用,连续的单词组 ...
- hdu 6435 CSGO
题意:现在有n个主武器, m个副武器, 你要选择1个主武器,1个副武器, 使得 题目给定的那个式子最大. 题解:这个题目困难的地方就在于有绝对值,| a - b | 我们将绝对值去掉之后 他的值就为 ...
- MySQL 数据库出现导入xls数据出现1062主从错误错误问题解决方案
今天把xls数据表导入MySQL数据库时发现出现1062错误 ,并且有20-700条数据一直导入不了所以开始找解决方案. 解决方案1: 数据库表设计问题导致相同字段的重复数据不能导入 解 ...
- springboot使用jdbcTemplate连接数据库
springboot使用jdbcTemplate连接数据库 1.pom.xml: <?xml version="1.0" encoding="UTF-8" ...
- 一次写文,多平台直接粘贴&打造最流畅的写作流程
文字爱好者的痛点 这一段可以跳过,解决办法在后面.因为大家既然痛过,也就懂了. 对于很多文字爱好者来说,都希望写一篇文章后,可以实现多平台发布. 国内的很多平台都开始支持 Markdown,除了微信公 ...
- .Net基础篇_学习笔记_第三天_Convert类型转换
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- FaceBook快捷登入
关于集成FaceBook快捷登入,我上回做了个最简单的版本,所有Web端通用,在这边共享下,有更好的解决方案的,麻烦评论留个地址,有不妥之处请指正. 首先,我们先加载Facebook的Js windo ...
- Winform中使用FastReport的DesignReport时怎样设置Table的size自动调整
场景 FastReport安装包下载.安装.去除使用限制以及工具箱中添加控件: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...
- Hbase 日常运维
日常维护的命令 1,major_compact 'testtable',通常生产环境会关闭自动major_compact(配置文件中hbase.hregion.majorcompaction设 为0) ...