VR系统的组成与交互技术汇总

2023-05-16

今天给大家介绍一下VR系统的组成与当前一些VR交互技术,希望大家对VR有更深的理解。
一个典型的虚拟现实系统主要由计算机、输入输出设备、虚拟现实设计/浏览软件等组成。用户以计算机为核心,通过输入输出设备与应用软件的虚拟世界进行交互。

计算机
在虚拟现实系统中,计算机是系统的心脏,主要用于接收、处理、控制显示各种信息及相互间的作用和状态,负责虚拟世界的生成、人与虚拟世界的自然交互等功能的实现。
输入输出设备
在虚拟现实系统中,用户与虚拟世界之间要实现自然的交互,必须采用特殊的输入输出设备,用以识别用户的各种信息输入,并实时生成逼真的反馈信息。
VR输入设备如动作捕捉、手势识别、声音感知等体感类设备,通过感知用户输入信息,与虚拟世界进行交互,输入设备是实现消费者交互、沉浸感的重要技术。
下面是一些在VR虚拟现实场景中运用到的交互技术:

动作捕捉
用户想要获得完全的沉浸感,真正“进入”虚拟世界,动作捕捉系统是必须的。目前专门针对VR的动捕系统,目前市面上可参考的有 Perception Neuron。但是这样的动作捕捉设备只会在特定的超重度的场景中使用,因为其有固有的易用性门槛,需要用户花费比较长的时间穿戴和校准才能够使用。相比之下,Kinect这样的光学设备在某些对于精度要求不高的场景可能也会被应用。
全身动捕在很多场合并不是必须的,它的另一个问题,在于没有反馈,用户很难感觉到自己的操作是有效的,这也是交互设计的一大痛点。

触觉反馈
这里主要是按钮和震动反馈,这就是下面要提到的一大类,虚拟现实手柄。目前三大VR头显厂商Oculus、索尼、HTC Vive都不约而同的采用了虚拟现实手柄作为标准的交互模式:两手分立的、6个自由度空间跟踪的(3个转动自由度3个平移自由度),带按钮和震动反馈的手柄。这样的设备显然是用来进行一些高度特化的游戏类应用的(以及轻度的消费应用),这也可以视作一种商业策略,因为VR头显的早期消费者应该基本是游戏玩家。这样高度特化/简化的交互设备的优势显然是能够非常自如地在诸如游戏等应用中使用,但是它无法适应更加广泛的应用场景。

眼球追踪
提起VR领域最重要的技术,眼球追踪技术绝对值得被从业者们密切关注。Oculus创始人帕尔默•拉奇就曾称其为“VR的心脏”,因为它对于人眼位置的检测,能够为当前所处视角提供最佳的3D效果,使VR头显呈现出的图像更自然,延迟更小,这都能大大增加可玩性。同时,由于眼球追踪技术可以获知人眼的真实注视点,从而得到虚拟物体上视点位置的景深。所以,眼球追踪技术被大部分VR从业者认为
将成为解决虚拟现实头盔眩晕病问题的一个重要技术突破。

事实上,在业内人看来,从眼球追踪技术本身来说,虽然在VR上有一些限制,但可行性还是比较高的,比如外接电源、将VR的结构设计做的更大等。但更大的挑战在与通过调整图像来适应眼球的移动,这些图像调整的算法目前来说都是空白的。有两个指标,一是图像自然真实,二是快速延迟小。这对VR+眼球追踪提出了更高的要求,如果达到这两点,VR的可玩性会再提高一个档次。

肌电模拟
关于这个我们通过一个VR拳击设备Impacto来说明,Impacto结合了触觉反馈和肌肉电刺激精确模拟实际感觉。具体来说,Impacto设备分为两部分。一部分是震动马达,能产生震动感,这个在一般的游戏手柄中可以体验到;另外一部分,也是最有意义的部分,是肌肉电刺激系统,通过电流刺激肌肉收缩运动。两者的结合能够给人们带来一种错觉,误以为自己击中了游戏中的对手,因为这个设备会在恰当的时候产生类似真正拳击的“冲击感”。
然而,业内人士对于这个项目有些争议,目前的生物技术水平无法利用肌肉电刺激来高度模拟实际感觉。即使采用这种方式,以目前的技术能实现的也是比较粗糙的感觉,这种感觉对于追求沉浸感的VR也没有太多用处,“还不如震动马达”。还有一位从事疼痛缓解理疗仪的朋友表示,利用肌肉电刺激来模拟真实感觉需要克服的问题有很多,因为神经通道是一个精巧而复杂的结构,从外部皮肤刺激是不太可能的,但是“随便”电刺激一下让肌肉运动以当做反馈是可以的。

手势跟踪
使用手势跟踪作为交互可以分为两种方式:第一种是使用光学跟踪,比如Leap Motion这样的深度传感器,第二种是将传感器戴在手上的数据手套。
光学跟踪的优势在于使用门槛低,场景灵活,用户不需要在手上穿脱设备,未来在一体化移动VR头显上直接集成光学手部跟踪用作移动场景的交互方式是一件很可行的事情。但是其缺点在于视场受局限,以及我们之前所提到的两个基本问题:需要用户付出脑力和体力才能实现的交互是不会成功的,使用手势跟踪会比较累而且不直观,没有反馈。这需要良好的交互设计才能弥补。
数据手套,一般在手套上集成了惯性传感器来跟踪用户的手指乃至整个手臂的运动。它的优势在于没有视场限制,而且
完全可以在设备上集成反馈机制(比如震动,按钮和触摸)
。它的缺陷在于使用门槛较高:用户需要穿脱设备,而且作为一个外设其使用场景还是受局限:就好比说在很多移动场景中不太可能使用鼠标。不过这些问题都没有技术上的绝对门槛,完全可以想象类似于指环这样的高度集成和简化的数据手套在未来的VR产业中出现,用户可以随身携带随时使用。
这两种方式各有优劣,可以想见在未来这两种手势跟踪在很长一段时间会并存,用户在不同的场景(以及不同的偏好)使用不同的跟踪方式。

方向追踪
方向追踪除了可以用来瞄点,还可以用来控制用户在VR中的前进方向。不过,如果用方向追踪调整方向的话很可能会有转不过去的情况,因为用户不总是坐在能够360度旋转的转椅上的,可能很多情况下都会空间受限。比如头转了90度接着再转身体,加起来也很难转过180度……所以,这里“空间受限无法转身是一个需求”,于是交互设计师给出了解决方案——按下鼠标右键则可以让方向回到原始的正视方向或者叫做重置当前凝视的方向(就是你最初始时候面向的那个方向),或者可以通过摇杆调整方向,或按下按钮回到初始位置。但问题还是存在的,以用户面朝的方向作为行走方向比起键鼠和gamepad,转向和视觉相匹配极大地增强了沉浸感,但是却有可能玩得很累,削弱了舒适性。

语音交互
在VR中海量的信息淹没了用户,他不会理会视觉中心的指示文字,而是环顾四周不断发现和探索。如果这时给出一些图形上的指示还会干扰到他们在VR中的沉浸式体验,所以最好的方法就是使用语音,和他们正在观察的周遭世界互不干扰。这时如果用户和VR世界进行语音交互,会更加自然,而且它是无处不在无时不有的,用户不需要移动头部和寻找它们,在任何方位任何角落都能和他们交流。

传感器
传感器能够帮助人们与多维的VR信息环境进行自然地交互。比如,人们进入虚拟世界不仅仅是想坐在那里,他们也希望能够在虚拟世界中到处走走看看,比如万向跑步机。然而体验过的人都反应过,这样的跑步机实际上并不能够提供接近于真实移动的感觉,目前体验并不好。还有的想法是使用脚上的惯性传感器使用原地走代替前进,比如StompzVR。还比如全身VR套装Teslasuit,戴上这套装备,可以切身感觉到虚拟现实环境的变化,比如可感受到微风的吹佛,甚至是射击游戏中还能感受到中弹的感觉。
这些都是由设备上的各种传感器产生的,比如智能感应环、温度传感器、光敏传感器、压力传感器、视觉传感器等,能够通过脉冲电流让皮肤产生相应的感觉,或是把游戏中触觉、嗅觉等各种感知传送到大脑。但是,目前已有的应用传感器的设备体验度都不高,在技术上还需要做出很多突破。

真实场景设计
就是造出一个与虚拟世界的墙壁、阻挡和边界等完全一致的可自由移动的真实场地,它是一个混合现实型的体验,把虚拟世界构建在物理世界之上,让使用者能够感觉到周围的物体并使用真实的道具,比如手提灯、剑、枪等。这种真实场地通过仔细的规划关卡和场景设计就能够给用户带来种种外设所不能带来的良好体验。但规模及投入较大,且只能适用于特定的虚拟场景,在场景应用的广泛性上受限。

未来多通道的交互将是VR时代的主流交互形态,目前,VR交互的输入方式尚未统一,市面上的各种交互设备仍存在各自的不足。
(本文由VR辅导老师整理,资料来源网络,,欢迎转发朋友圈,交流请加VR辅导老师微信:aishangyema123 )

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VR系统的组成与交互技术汇总 的相关文章

  • 类和对象初识

    类和对象初识 类的由来类的定义类的特性封装访问限定符 类的定义方法声明和定义全部放在类体中声明放在 h文件中 xff0c 类的定义放在 cpp文件中类对象的大小 内存对齐规则 类的由来 在C语言中我们有自定义类型的struct xff0c
  • 类的默认成员函数——上

    类的默认成员函数 默认成员函数构造函数构造函数由来构造函数特征默认构造函数特征总结 xff1a 析构函数特征 拷贝构造默认拷贝构造总结 C 43 43 中如果一个类中什么成员都没有 xff0c 简称为为空类 空类中什么都没有吗 xff1f
  • 进程控制块

    进程控制模块 查看进程PCB内部构成标识符ppid 状态优先级查看优先级方式优先级确定原理调整优先级nice值范围 程序计数器内存指针上下文数据时间片上下文数据 I xff0f O状态信息记账信息 查看进程信息 进程 xff1a 加载到内存
  • 模拟实现stack/queue

    模拟实现stack queue stack大体框架接口函数实现 queue大体框架接口函数 stack 之前的博客中介绍了栈和队列的相关功能 xff0c 这里我们模拟实现一个栈和队列 大体框架 由于栈的特殊性 xff0c 栈不支持迭代器访问
  • 进程间通信——命名管道

    命名管道 命名管道定义命名管道创建命令行上创建程序内创建 命名管道间通信匿名管道和命名管道区别 命名管道定义 上一篇博客中介绍了匿名管道的用法以及他的特点 xff0c 但是它存在一定的限制 xff0c 例如他只能在两个具有公共祖先的进程间进
  • Altium Designer一些好用的系统设置

    AD软件系统设置 系统参数设置GeneralNavigationDesign InsightFile Types 原理图参数设置GeneralCross Overs位号自动增加设置原理图大小设置 Graphical Editing单一 39
  • 哈希——开散列

    哈希 开散列 开散列概念开散列的简单实现HashFunc开散列的构成插入去重扩容插入 测试 开散列概念 上一篇博客中介绍了解决哈希冲突的一种方法 xff1a 闭散列 但是闭散列中不管是线性探测还是二次探测 xff0c 解决哈希冲突问题都不够
  • 开发者七问七答:什么是产品化?

    简介 xff1a 之前参加了企业智能部门如何做产品化的讨论 xff0c 大家对产品化的定义和过程都有各自不同的见解 我觉得这个话题其实可以扩展下 xff0c 想站在一个开发人员的视角尝试探讨一下产品化 下面以自问自答的方式来展开 1 当我们
  • 用哈希简单封装unordered_map和unordered_set

    哈希表的改造 哈希表的改造unordered map和unordered set的基本结构哈希表改造节点结构体迭代器哈希表改造 unordered map和unordered set封装unordered map封装以及测试代码unorde
  • 位图的基本原理以及应用

    位图 位图的应用场景位图的基本概念位图 位图的应用场景 假设生活中有以下这种应用场景 xff1a 有未排序的40亿个数 xff0c 需要在其中查找一个数字是否存在 如果直接使用数组来存放这些数 xff0c 那么一个整型的数占4个字节 xff
  • Retrofit 结合 Lifecycle, 将 Http 生命周期管理到极致

    code小生 一个专注 Android 领域的技术平台 公众号回复 Android 加入我的安卓技术群 作者 xff1a xcheng 链接 xff1a https www jianshu com p 07fe489a53f2声明 xff1
  • 实践App内存优化:如何有序地做内存分析与优化

    code小生 一个专注Android领域的技术平台 作者 xff1a 舒大飞 地址 xff1a https www jianshu com p f3e8c34d0803 声明 xff1a 本文已获 舒大飞 授权 xff0c 转发等请联系原作
  • Android 面试题集(2019-04-04总结)

    作者 xff1a ClAndEllen 链接 xff1a https www jianshu com p 98255550b41e 一份Android面试题集 xff0c 适应于实习 amp 初级工程师 amp 中级工程师 xff0c 高级
  • 虚拟主机和服务器之间的区别

    很多人都容易将云服务器与虚拟主机混为一谈 xff0c 大致因为他们性能及安全性方便有不少相似的地方 xff0c 那么云服务器与虚拟主机究竟有哪些明显区别呢 xff1f 概念区分 xff1a 云服务器是一种简单高效 安全可靠 处理能力可弹性伸
  • MySQL编码详解及中文乱码问题解决方案

    最近 xff0c 在项目组使用的MySQL数据库中 xff0c 插入数据出现乱码问题 xff0c 出现诸如 或者 等字符 为了防止在 今后项目中再次出现相类似问题 在这里对于MySQL编码问题做 一个详细的介绍并对于乱码问题提出一些解决方案
  • XCOM V2.6 串口打印出来中文乱码,字体格式错乱的一种原因(设置没问题,突然乱码)

    一 问题重现 XCOM V2 6里 xff0c 完全一样的设置 xff0c 之前显示的好好的 xff0c 后来突然中文出现乱码 xff0c 字体格式也大变 xff0c 如下图 xff1a 二 解决方案 一般这种乱码 xff0c 往往都是因为
  • 生产者与消费者模型

    1 三种关系 1 生产者和生产者互斥关系 2 消费者和消费者互斥关系 3 生产者和消费者同步互斥关系 2 生产者和消费者模型 生产者消费者模型就是通过一个容器来来解决强耦合问题的 耦合 xff1a 2个或2个以上事物相互作用 xff0c 相
  • Windows server 2016基本设置

    windows server 2016相比较而言具有更加稳定的特性 xff0c 但不免有些繁琐 xff0c 可以通过一些设置可以使其更加易用 一 组策略 WIN键 43 R键 xff0c 输入gpedit msc xff0c 进入组策略设置
  • 收藏 | 阿里程序员常用的 15 款开发者工具(2020 版)

    简介 xff1a 本文精选了一些阿里经济体内部最受开发者欢迎的开发者工具 xff0c 筛选出一些带有普适性同样适合外部开发者的 xff0c 希望能助力开发者们提高开发效率 来源 阿里巴巴云原生公众号 本文精选了一些阿里经济体内部最受开发者欢
  • root登录卡在tty,登入root

    ubuntu桌面使用root直接登录的方法 Linux系统下文件的权限十分重要 xff0c 大多数操作都需要一定的权限才可以操作 xff0c Ubuntu18 04默认安装是没有设置root账户的 xff0c 因此想要获得root账户登录可

随机推荐

  • 使用Python做一个语音播报温湿度系统,元气满满的一天从听到他开始

    来这里发现更多有趣案例 HaaS开发框架 HaaS积木方案 xff0c 赋能生态开发者 xff0c 让您快速找到自己需要的解决方案 xff0c 硬件主板与外设 xff0c 以及各种应用组件 https haas iot aliyun com
  • 基于MVC模式实现用户注册和登录功能

    目录 1 实验简介2 具体细节分析3 实验工具4 整体框架截图5 代码实现1 login jsp2 ok jsp3 register jsp4 list jsp5 edit jsp6 DBConn java7 User java8 User
  • 十大远程控制软件(远程控制软件推荐)

    远程控制软件可以跨空间的操控对方电脑 xff0c 被广泛用于远程办公 远程教育 远程指挥 远程协助 远程维护 xff0c 已成为电脑必备应用 xff1b 那么纵观全网 xff0c 有哪些好用的远程软件 xff1f 这些远程控制软件有什么优势
  • 程序员永远的痛之字符编码的奥秘

    字符编码相信是每个程序员的噩梦 xff0c 只要是有中文的地方 xff0c 总是会遇到各种编码的问题 xff0c 并且这种问题还非常难缠 xff0c 尤其在linux上 xff0c 因为上面很多软件都是针对英语国家开发的 xff0c 是不会
  • C++11 之for 新解

    前言 C 43 43 11这次的更新带来了令很多C 43 43 程序员期待已久的for range循环 xff0c 每次看到javascript xff0c lua里的for range xff0c 心想要是C 43 43 能有多好 xff
  • c++11之初始化列表

    一 前言 C 43 43 的学习中 xff0c 我想每个人都被变量定义和申明折磨过 xff0c 比如我在大学笔试过的几家公司 xff0c 都考察了const和变量 xff0c 类型的不同排列组合 xff0c 让你区别有啥不同 反正在学习C
  • Unity Update 详解

    0x01 简介 Unity的脚本继承了Monobehaviour类 xff0c 在脚本中定义函数 xff1a void FixedUpdate span class hljs list span void span class hljs k
  • 2016总结

    欲言又止 xff1a 每年的年终总结是要在新年之前发表在博客上 xff0c 今年的年终总结拖到现在完成 xff0c 我也是服自己 这里要感谢我的高中好友 64 万学清同学 xff0c 在我去年微信发表的有关年终总结的朋友圈下 xff0c 催
  • 阅读代码和修改别人代码的一些技巧以及注意事项

    作为刚刚走上工作岗位的fish xff0c 都要熟悉前辈们留下来的代码 这段时间是fish最痛苦的时间同时也是最轻松的时间 痛苦是因为要看大量的代码 xff0c 同时要慢慢从学生到社会人士的转变 xff08 xff0c 再不能睡懒觉了 xf
  • ESP32控制TDC-GP22测量超声传播时间(超声流量计)

    TDC GP22控制的资料 xff0c 网上的资源都是基于STM32或者MSP430主控的 xff0c 但现在这两款芯片都太贵了 xff0c 因此就想用便宜点的ESP32 xff0c 折腾了快一周 xff0c 终于弄好了 工程源码和参考资料
  • WIN10远程连接WIN10报错:你的凭据不工作

    很多用户在升级到win10系统之后 xff0c 连接远程桌面功能的时候遇到这样一个错误 xff0c 就是远程桌面提示 你的凭据不工作 xff0c 导致无法连接远程桌面 xff0c 该怎么解决呢 xff0c 下面为大家讲解一下Win10无法连
  • 一个分号引发的血案

    最近在看 Data Structures and Algorithms 这本书 xff0c 书里对数据结构和算法进行了简单的描述 xff0c 并且用伪码进行了实现 伪码毕竟和代码还是有很大不同的 xff0c 书的说明里说有C 写的源码 xf
  • Iphone客户端程序员半年工作总结

    来公司四个半月了 xff0c 从对客户端游戏编程的小白慢慢的也能写一些东西了 xff0c 当然了这里最感谢的人就是九天了 xff0c 对于九天其它的好我就不说了 xff0c 就是感觉九天为了团队 xff0c 为了项目 xff0c 他在很用心
  • Unity Android Activity控制

    前言 开发游戏 xff0c 在国内发行 xff0c 接入各个渠道SDK是一件绕不开的事情 并且这件事非常复杂琐碎 xff0c 原因如下 xff1a a 发行平台多 xff0c Android平台有30 xff0c 40家主流发行平台 b 每
  • Unity Android 加载动态库

    前言 在接入360 Android SDK时遇到在有些机型的Android机器上报错 xff0c 具体错误提示为 xff1a Failure to initialize Your hardware does not support this
  • 德鲁克谈《自我管理》笔记摘要

    一 我的长处是什么 多数人都以为他们知道自己擅长什么 xff0c 其实不然 要发现自己的长处 xff0c 唯一的途径就是分析回馈法 写下自己预期的结果 9 12个月后 xff0c 将实际结果和预期比较 总结改善自己的预期和行动 我们要以持之
  • ubuntu下搭建cocos2dx编程环境-上

    这大半年一直在开发flash游戏 xff0c 用到的编程语言是actionscript和c 43 43 所以这次公司决定开发手游端的话 xff0c C 43 43 不是很生疏 xff0c 这是个好消息 坏消息是由于现在网页游戏还没有上线 x
  • ubuntu 系统上安装python3.6

    今天再ubuntu系统上安装python3 6 xff0c 之前版本是python 2 7版本 具体安装步骤如下 xff1a 1 sudo apt get update 2 sudo apt get install software pro
  • 用matlab实现图片的缩放

    i 61 imread 39 qiegray jpg 39 j 61 imresize i 0 5 imshow i figure imshow j
  • VR系统的组成与交互技术汇总

    今天给大家介绍一下VR系统的组成与当前一些VR交互技术 xff0c 希望大家对VR有更深的理解 一个典型的虚拟现实系统主要由计算机 输入输出设备 虚拟现实设计 浏览软件等组成 用户以计算机为核心 xff0c 通过输入输出设备与应用软件的虚拟