在你眨眼时,VR这样欺骗你的视觉

news2025/1/17 3:17:49

VR的沉浸感,可以让人仿佛置身于现实之外,还可以利用各种生物传感特性,来模拟一种具有存在感的虚拟空间。实际上,VR可以很好的欺骗人的感官,比如尽管你身处空间有限的房间中,但在VR中你仿佛已来到开阔的户外大空间中。

为了进一步欺骗你的视觉,一些方案会在你短暂闭眼的时候,低调的调整你眼前的VR场景,从而实现某种重定向效果。简单来讲,重定向是通过视觉变化,改变你对VR空间中方位的感知,这种技术可用来重制VR中的行走方向,或是手势。比如利用行走重定向,可以打破VR场景在物理场景中的一比一映射,可以让用户在无意识的情况下,在有限的空间内不断行走,并感觉VR中的虚拟空间比实际更大。

手势重定向也有多种用途,比如在现实场景中使用一个真实物体,来代表VR中的多个物体,每次你在VR中触碰不同的虚拟物体时,由于视觉重定向效果,你在现实场景中实际上一直在触碰同一个物体。这样一来,只需要一个物体,就能模拟多个虚拟物体的体感。或者,也可以通过重定向来优化目标映射,从而提升人体工学体验。

在一些手势重定向研究中,科研人员甚至打乱了一只手的实际位置和在VR中的位置,利用一只手来为另一只手提供体感反馈。

那么如何巧妙的欺骗你的眼睛,实现重定向呢?一个可行的方案是利用人眼的变化盲视特性,即由于短暂视觉遮挡、图像闪灭、眼球运动、地点变化、缺乏注意力等原因,观察者无法注意到场景中的某些变化的现象。这种特性可以为VR所利用,比如在用户眨眼时,悄悄更改虚拟场景的外观。

实际上,在2018年时,NVIDIA、Adobe就提出了一种基于眼跳/眼球扫视的VR重定向行走技术,在眼跳时人闭眼的时间大约20-40毫秒,在这么短暂的时间里,已经证明可实现一定程度的重定向效果。相比之下,,眨眼持续的时间(100-150毫秒)是眼跳的数倍,因此允许VR实现更大的调整,更不容易被人眼识别。

近期,德国萨尔大学博士后研究生Andre Zenner在ACM CHI 2023上就发表了这样一篇有趣的论文,来探讨在VR中触发眨眼来实现重定向的效果和可能性。在论文中,Zenner列出了6种触发眨眼的方式,并对其进行测试,结果发现目前还没有一个既隐蔽又有效的刺激方式,但你可以根据不同的VR内容,去选择更合适的方案,也能得到不错的效果。

Zenner指出:对于VR来讲,变化盲视是一种营造幻觉的好方式。通常,人每分钟平均眨眼至少12次,大约每3秒到6秒一次,因此可以作为一种比较常出现的视觉遮挡来源。但对于变化比较快的内容来讲(比如手势重定向,可能只有2秒时间),3秒一次的眨眼频率并不够,而且眨眼通常很难快速预测。因此,需要想办法主动触发用户眨眼。

此前,已经有研究在台式机、可穿戴设备上探索触发眨眼的方案(软件和硬件方案),但在VR上还没有这样的研究。此前的研究目的是改善计算机视觉综合征(长时间看屏幕导致的视力问题),因此重点是提高眨眼频率来缓解视觉疲劳,而不是即时触发眨眼。

于是,便提出了一种专为VR设计的眨眼触发研究,该研究的灵感来自他在IEEE VR 2021上提出的基于眨眼的手势重定向研究。在研究中,科研人员根据一系列常见的眨眼反射特性,提出了6种触发眨眼的方式:1)白噪音听觉刺激;2)眉间震动刺激;3)闪光刺激;4)画面模糊;5)物体靠近刺激;6)喷气刺激。

其中,闪光刺激由软件程序驱动,原理是控制屏幕闪白光。画面模糊是为了模糊干眼症,刺激用户眨眼。物体靠近方式采用了一个黑色小球,让小球从远景快速向眼前靠近,以触发人眼的威胁反射,迫使用户眨眼。黑色小球乍一看就像快速移动的阴影,由于出现的时间很短暂,几乎不会引起人注意。喷气刺激是一种硬件方案,可在用户太阳穴部位的头显内侧加入微型喷气模组,宣称可触发睑闭反射。科研人员指出,只需要对着一只眼球附近喷气一次,就能刺激双眼眨眼。

Zenner通过4个方向来测试上述方案的效果,即有效果、高效率、可靠、自然不明显(舒适)。并根据测试结果,选出了其中效果最好的4种方案(即3、4、5、6)。

以下是这4种方案的优缺点对比:

1,喷气刺激

  • 好处:综合效果更好,平衡了效率和舒适性;
  • 缺点:额外的硬件、需要校准(未来可以通过眼球追踪来自动校准喷头)
  • 适合场景:需要快速眨眼、低干扰时;

2,闪光刺激

  • 好处:综合效果与喷气方案相当;
  • 缺点:触发眨眼的速度不够快(不适合手势重定向),未来可通过更亮的屏幕、不同的闪光图案来改善;
  • 适合场景:需要快速眨眼,可容许一定程度干扰;

3,物体靠近方案

  • 好处:触发眨眼速度最快、最可靠;
  • 缺点:干扰明显,未来或通过将物体与VR场景的风格逻辑匹配,来降低干扰;

4,模糊方案

  • 好处:可能降低明显性,比如设计为边缘模糊等等;
  • 缺点:触发眨眼效果不明显;
  • 适合场景:对眨眼触发速度、干扰性要求不高时。

通过实验调查发现,物体靠近、喷气、闪光的方式可以更快的触发眨眼。VR可以很好的模拟快速靠近的物体,而且在不同人身上的效果差别不大。

在可靠性方面,只有物体靠近和喷气方案,能确保在1秒钟内触发眨眼。不过,这六种方案都很容易被识别,其中效果最好的也最明显。尽管如此,眨眼触发机制似乎并未影响参与者完成游戏任务。

在实际应用时,应考虑如何将刺激机制与VR内容更好的融合,降低其侵入性/干扰性。参考:hackaday

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/415487.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络应用程序设计(idea版)——实验三:Web组件重用与JavaBeans

目录 实验预习报告 一、实验目的 二、实验原理 三、实验预习内容 实验报告 一、实验目的 二、实验要求 三、实验内容及要求 实验预习报告 一、实验目的 1. 理解静态包含和动态包含的概念,掌握相关指令和动作的使用; 2. 掌握JavaBeans的含义和…

路科验证UVM入门与进阶详解实验3

在UVM——lab3中,将SV环境移植到UVM的重点内容如下: TLM的单向、多向通信端口使用TLM的通信管道UVM的回调类型 uvm_callbackUVM的一些仿真控制函数TLM单向、多向通信 1、何为事务级、何为事务级通信(TLM)?有什么用&am…

禁用linux系统默认的22端口号

前提条件:在云平台上开放一个代替22的端口。 1、需查看服务器的防火墙是否开启, 命令:systemctl status firewalld.service 如果防火墙的状态为开启,在运行,需要先在防火墙增加端口 1.命令:firewall-cm…

【消息队列】Kafka如何实现高性能IO

我们直到Kafka是一个自称高性能的消息队列引擎,一般来说对于中间件的设计需要从计算、存储、网络三方面进行下手,而消息从产生到消费,也会经历多个流程,比如在生产者端采用异步\同步方式发送,采用高效的压缩算法&#…

JavaWeb03 Cookie和Session

一个网站怎么证明你来过? 1.首次访问时服务器给客户端一个cookie,下次客户端再次访问会自动携带cookie,注意cookie可以是多个 2.首次访问时服务器登记了客户端一系列信息,下次客户端再进行访问时服务器自动匹配此客户端是否访问…

Win10搭建我的世界Minecraft服务器「内网穿透远程联机」

文章目录1. Java环境搭建2.安装我的世界Minecraft服务3. 启动我的世界服务4.局域网测试连接我的世界服务器5. 安装cpolar内网穿透6. 创建隧道映射内网端口7. 测试公网远程联机8. 配置固定TCP端口地址8.1 保留一个固定tcp地址8.2 配置固定tcp地址9. 使用固定公网地址远程联机转载…

Mac远程控制工具有哪些

适用于Mac的远程控制工具有很多,这里我们给大家列举五个常用软件。 1、Apple Remote Desktop 苹果自带远程桌面正如其名称所承诺的那样。作为 Apple 出品的应用程序,您可以想象它的配置和上手是多么容易。从 App Store 下载 Apple Remote Desktop 后&a…

ThreadPoolExecutor获取原始异常

ThreadPoolExecutor作用 ThreadPoolTaskExecutor是Spring框架提供的一个线程池实现,它是基于Java的ThreadPoolExecutor实现的。ThreadPoolTaskExecutor可以管理线程池中的线程,以满足多线程并发执行任务的需要。 FutureTask作用 FutureTask的主要作用…

自动化篇 | 13 | app自动化:airtest

1 airtes简介 1.1 参考地址 http://airtest.netease.com/ # airtest官网 https://airtest.doc.io.netease.com/ # airtest操作方法 https://airtest.doc.io.netease.com/IDEdocs/faq/1_code_examples/ # 代码示例2 airtest架构 Airtest框架 3 airtest使用 3.1 打开界…

【C语言】猜数字游戏的实现

简单不先于复杂,而是在复杂之后。 目录 1.思路(代码会附在最后面) 2.随机数函数rand 1.思路(代码会附在最后面) 首先实现一个猜数字游戏我们先要有一个思路:1.产生一个随机数 2.猜数字 3.可能猜大了 4.可能…

java简单一写一个springboot入门案例

首先 我们先打开idea编辑器 然后 选择File New>Project… 项目的话 我们选择 Spring lnitializr 右边的路径要改一下 然后 选择好路径之后 一定要要在后面加上 \项目名 例如 我这里 选择了 D盘下的学习案例下的springbootDom 项目名叫 threshold 那就这样配置 java版本选…

探索【PhySO】

目录0、 初步报错情况1、230、 初步报错情况 根据原链接,已确定安装成功,运行demo时出现报错,不能正常运行 报错: .Dummy epoch time 238.366736 ms .Dummy epoch time (w duplicate elimination) 180.852427 ms (found 15/1…

【结构型模式】代理模式

文章目录优秀借鉴1、简介2、结构3、实现方式3.1、案例引入3.2、静态代理3.3、JDK动态代理3.4、CGLIB动态代理4、区别对比4.1、静态代理和动态代理4.2、JDK动态代理和CGLIB动态代理5、代理模式优缺点6、应用场景优秀借鉴 设计模式(四)——搞懂什么是代理…

线段树的懒标记

上次看的那个视频讲线段树的时候压根没讲懒标记,然后我今天去写题目直接被薄纱!都是70分,剩下3个节点tml!!! 懒标记 我们在修改一些区间的时候,按照我昨天来学的来修改要改到最下面的叶节点去…

Visual Studio如何将UTF-8字符串输出到控制台

解决c语言使用libcurl库时控制台输出中文出现乱码的问题。 字符编码问题一直以来都是Windows系统的诟病,而Visual Studio也是饱受此诟病。由于历史原因,Windows系统对各个不同的国家地区可能采用不同的code page。由于早先Unicode并未发展成熟&#xff0…

Java设计模式之工厂模式

什么是工厂模式 工厂模式就是将创建对象的具体过程和使用过程分开,这样能够使代码更加灵活。 工厂模式主要分为三类: 简单工厂模式工厂方法模式抽象工厂模式 比如在没有工厂的时候,用户需要一台奥迪车,那么就需要用户去创建一台…

【java 多线程】并发设计模式-两阶段终止模式(对interrupt的理解)

📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言&#x1f4d…

惊艳!阿里出品“Java全栈进阶宝典”,广度与深度齐头并进

前言 据有关数据统计,目前来看,大大小小的招聘网站上面,Java岗的招聘量仍然是最多的,基本是其他语言的3倍以上,由于目前Java所处的统治级地位,单就数量来看,Java语言实现的系统是海量的&#x…

linux安装MongoDB

环境说明 系统CentOS:CentOS7 mongodb版本 4.2.24 下载 官网下载地址 Download MongoDB Community Server | MongoDB 某云盘 链接:https://pan.baidu.com/s/1G4AC3h5rvz9WM3fx4gJzbA 提取码:ojkl 上传解压 在根目录下创建opt文件夹…

【数据分析之道-基础知识(九)】推导式

文章目录专栏导读1、前言2、列表推导式3、集合推导式4、字典推导式5、元组推导式专栏导读 ✍ 作者简介:i阿极,CSDN Python领域新星创作者,专注于分享python领域知识。 ✍ 本文录入于《数据分析之道》,本专栏针对大学生、初级数据分…