Unity VR:Oculus Integration 中 OVRManager 的 Eye Level,Floor Level,Stage 的区别

news2024/9/24 23:29:58

在这里插入图片描述
Oculus Integration 开发包中有个 OVRManager 脚本被挂载到 OVRCameraRig 物体上。OVR Manager 中有个 Tracking Origin Type 参数,它相当于追踪的参考系,参数分为 Eye Level, Floor Level 和 Stage。
VR 设备会对头显进行追踪,于是现实中头显的位置和旋转数据会被传输给 Unity,让 Unity 中的眼部相机匹配上现实中玩家头显和位置和朝向。而头显的位置和旋转数据是个三维坐标,那么它们的值一定是相对于某个参考系的。 这时候 Tracking Origin Type 参数就派上了用场。Oculus 官方文档对三种 Type 的定义是这样的:(https://developer.oculus.com/documentation/unity/unity-add-camera-rig/)

  • Eye Level tracks the position and orientation relative to the device’s position.
  • Floor Level tracks the position and orientation relative to the floor, whose height is decided through guardian setup.
  • Stage also tracks the position and orientation relative to the floor. On Quest, the Stage tracking origin will not directly respond to user recentering.

如果直观的看,Tracking Origin Type 也相当于设置 VR 世界中头部的初始高度。

选择 Floor Level,会以安全区的地面(打开 VR 设备一般都会先设置地面高度,然后划安全区)作为参考系,运行程序后头部高度会以地面作为参考点,初始高度相当于摆放在场景中的眼部相机的高度加上现实中玩家头显到安全区地面的距离。

选择 Eye Level,会以头显设备本身作为参考系,头部的初始高度和摆放在场景中的眼部相机的高度是一样的,不会额外加上现实中头显到地面的距离。

选择 Stage,和 Floor Level 一样也是以地面作为参考系,但是不会受头显的重定位影响。重定位是什么意思呢?以 Quest 举例,长按右手柄的 Oculus 键或者重新划安全区会对用户的位置和朝向重新定位(需要是一体机软件而不是电脑串流),也可以说让用户的位置和朝向重新定位在初始的位置。假设刚进入一个游戏,我们在现实中的位置相当于虚拟世界中的初始位置,位于(0,0,0)原点,然后一开始有个方块处于我们的正前方。这时候我们在现实中转过 90°,然后往前走一步,再进行重定位。如果选择的是 Floor Level,方块就会被重新定位在我们的正前方,和一开始的位置是不一样的;如果选择的是 Stage,重定位是不起作用的,方块还会位于原来的位置。

大家可以通过下面的图感受它们的区别,也建议自己打包出来运行一下。

相机的初始高度

Eye Level:

在这里插入图片描述

Floor Level / Stage:

在这里插入图片描述

Floor Level 和 Stage 的区别

Floor Level:

在这里插入图片描述

Stage:

在这里插入图片描述

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

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

相关文章

VTK8.2.0的配置过程

VTK8.2.0的配置过程 1、官网下载vtk8.2.0的源码2、下载cmake3、使用cmake对源码进行编译4、报错后对cmake作如下修改配置5、使用vs2017打开生成的项目解决方案6、使用vs2017分别编译形成debug和release版本的可执行代码7、CMAKE_INSTALL_PREFIX/plugins/designer 目录下的 QVTK…

有AI助手帮你,刷任何题都不吃力!

Rider如何配置AI助手? 前言:一、选择AI助手二、如何在Rider中配置CodeWhisperer三、使用方法四、分享你的AI解决方案 明明自觉学会了不少知识,可真正开始做题时,却还是出现了“一支笔,一双手,一道力扣&…

RabbitMQ五种工作模式的简单应用

发布订阅模式(三种方式) 发布订阅模式上一篇我们已经介绍了,这里就不做介绍了,想要看的可以点此链接 在SpringBoot中对RabbitMQ三种使用方式_流殇꧂的博客-CSDN博客 Routing(路由模式)(基于注解的方式) 1.创建交换机和消息队列,类型要为direct(不设置也是默认的配置) //路由模式…

通信算法之173: 物理层峰均比PAPT

一. SC-FDMA技术 OFDM技术,能有效克服宽带通信系统中的频率选择性衰落,降低传输符号间干扰。但4G LTE标准,OFDMA只用在其下行传输,上行端采用了单载波频分复用技术(single carrier frequency domain multiple access S…

【办公类-19-01】“微信表情”表情包上传,用Python调整各类尺寸、格式

背景需求: 今天学了“微信表情”的表情图上传流程,发现其中有多种尺寸参数,必须完全符合尺寸、格式,才能上传。 以上有PNG、GIF的不同,有50*50,120*120,240*240,750*400四款差异,手动修改太费时了 我想用…

我第一次面试自动化测试就被diss了,人生惨遭滑铁卢…

如果你恰好刚刚进入一家新公司,领导一上来就让你开展自动化测试,作为一名初出茅庐的测试新人,除了手足无措,你只能默默慨叹自己能力尚欠,眼前只会出现一个又一个无从下手的问题: 作为手工测试,…

MySQL的视图和索引(调优)

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于MySQL数据库的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.视图是什么? 二.视图…

【周末闲谈】关于计算机的二三事

个人主页:【😊个人主页】 系列专栏:【❤️周末闲谈】 文章目录 前言一、第一台计算机的诞生💻二、计算机发展历史📚第一代计算机💻第二代计算机💻第三代计算机💻第四代计算机&#x…

国产MCU-CW32F030开发学习-圆形GC9A01_LCD模块

国产MCU-CW32F030开发学习-圆形GC9A01_LCD模块 硬件平台 CW32_48F大学计划板CW32_IOT_EVA物联网开发评估套件1.28寸圆形彩色TFT显示屏高清IPS 模块240X240 SPI接口GC9A01 产品介绍 1.28寸圆形IPS彩屏,支持 RGB 65K色显示,显示色彩丰富240X240分辨率…

一篇文章让你搞懂指针和数组笔试题(加深对指针的理解)

指针和数组笔试题解析 下文哦我们直接结合代码进行讲述 一维数组 1 //一维数组 #include<stdio.h> int main() {//一维数组int a[] { 1,2,3,4 };printf("%d\n", sizeof(a));printf("%d\n", sizeof(a 0));printf("%d\n", sizeof(*a))…

【C的葵花宝典进阶篇】之指针进阶(一)

【C语言进阶篇】之指针进阶&#xff08;一&#xff09; 1. 字符指针2. 指针数组2.1 整形指针数组2.2 用指针数组模拟二维数组 3. 数组指针3.1 数组指针的表示方法3.2 深度剖析&数组名和数组名3.3 数组指针的使用3.3.1 在同一函数内直接将数组的地址赋给数组指针3.3.2 数组指…

Flink提交作业时报错Cannot support file system for ‘hdfs‘ via Hadoop

Flink整合HDFS提交作业时报错 分享一个Flink提交作业时的报错&#xff0c;由于我用的是1.12版本的Flink&#xff0c;对于Hadoop3.0新特性是没有支持的&#xff0c;我的Hadoop版本是3.3.1。然后flink-shaded-hadoop-3-uber jar包是没有的&#xff0c;需要手动添加。 报错 Caus…

6、选中tiles的模型并高亮

本节演示选中3dtiles的模型&#xff0c;选中模型与ceisum基本一致。通过鼠标左键单击模型并将选中的模型进行高亮。使用上一节的示例&#xff0c;再添加鼠标左键单击事件用于选中模型。 1、修改Handler类&#xff0c;添加静态函数onLeftClick&#xff0c;参数与右键单击函数一…

ubuntu无法定位软件包 tfpd-hpa

安装sudo apt-get install tftp-hpa tftpd-hpa 提示无法定位软件包tfpd-hpa 搜索一下解决方法是需要sudo apt-get update之后才可 结果sudo apt-get update提示索引文件下载失败 按照网上的解决办法更改/etc/apt/sources.list里面的下载源问题依旧&#xff0c;然后又把source…

怎么把word转换成只有一页的长页PDF?

来百度APP畅享高清图片 要将Word文档打印成一长页的PDF格式&#xff0c;我们得先知道word转PDF的工作原理。word转pdf其实就是将word打印出来&#xff0c;就是跟你用物理打印机打印的原理是差不多的&#xff0c;所不同的是&#xff0c;PDF虚拟打印的原理是利用虚拟打印机驱动程…

新手入门深度学习 | 6-2:AlexNet(2012)详解

&#x1f517; 运行环境&#xff1a;python3&#x1f6a9; 作者&#xff1a;K同学啊&#x1f947; 精选专栏&#xff1a;《深度学习100例》&#x1f525; 推荐专栏&#xff1a;《新手入门深度学习》&#x1f4da; 选自专栏&#xff1a;《Matplotlib教程》&#x1f9ff; 优秀专栏…

oracle新建库(表空间)表

文章目录 前言一、sqlplus登录二、表空间1.新建表空间2. 查看表空间3. 查看表空间和对应数据文件4.表空间增加数据文件5.删除单个数据文件&#xff08;只有一个默认的会删除失败&#xff09;6.删除表空间及数据文件(慎用) 三、创建新用户并指定表空间1.去掉前缀2.新建用户&…

C语言是一种通用的、面向过程的编程语言

具有以下特点&#xff1a; 简洁而高效&#xff1a;C语言的语法相对简单&#xff0c;同时提供了丰富的编程结构和功能&#xff0c;使得开发者能够用较少的代码实现复杂的任务。C语言的执行效率高&#xff0c;能够直接操作计算机硬件&#xff0c;提供了底层的控制和优化能力。 可…

时间序列预测 | Matlab基于极限梯度提升树XGBoost时间序列预测,XGBoost时间序列预测模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 时间序列预测 | Matlab基于极限梯度提升树XGBoost时间序列预测,XGBoost时间序列预测模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码

后端开发常见技术场景

文章目录 1、单点登录这块怎么实现的1.1 概述1.2 JWT解决单点登录1.3 回答要点 2、权限认证是如何实现的2.1 概述2.2 RBAC权限模型2.3 回答要点 3、上传数据的安全性你们怎么控制&#xff1f;3.1 概述3.2 对称加密3.3 非对称加密3.4 回答要点 4、你负责项目的时候遇到了哪些比较…