HoloLens 坐标系统 Coordinate systems

Hololens 和 Unity 空间坐标系统-CSDN博客文章浏览阅读79次。这意味着,在 X、Y 或 Z 轴上相距 2 个单位的物体,在混合现实中的渲染效果是相距 2 米。虽然左手坐标和右手坐标是最常见的系统,但 3D 软件中也会使用其他坐标系。例如,3D 建模应用程序使用坐标系统,其中 Y 轴指向或远离查看器,Z 轴指向上。在这两个坐标系统中,正 X 轴指向右侧,正 Y 轴指向上方。两者之间的区别在于,在右手坐标系中,Z 轴指向你,而在左侧坐标系中,Z 轴远离你。通常,笛卡尔坐标系称为“右手”或“左手”,因为可以使用手部位置来指示 XYZ 轴的方向。https://blog.csdn.net/loveric/article/details/141267469

设备支持

混合现实体验级别

HoloLens 尚不支持场地参照系。 HoloLens 上的房间级别应用目前需要使用空间映射或场景理解来查找用户的活动区域地面和围墙。

构建“仅限方向”或“坐立空间规模”的体验 

Orientation-only or Seated-scale

全息影像渲染的关键是,当用户四处移动时,根据预测的头部运动,改变应用中每一帧全息影像的视角。 如果使用固定参照系,可以创建一个可识别和反映用户头部位置和朝向变化的“坐立空间级别”体验。

有些内容需要忽略头部位置变化,始终保持选定的朝向和距离。 一个显著例子就是 360 度视频:因为视频是在一个单独的固定视角拍摄的,如果视窗的位置根据内容移动,会破坏观影,但视窗的朝向会跟着用户四处观看而转动。 如果使用动态参照系,可以创建“仅朝向”体验。

固定参照系 Stationary frame of reference

固定参照系提供的坐标系统会根据物体在世界中的位置尽可能地让用户附近的物体保持稳定,但同时会反映出用户头部位置的变化。

对于“坐立空间级别”体验,在 Unity 这样的游戏引擎中,采用固定参照系来定义引擎的“世界原点”。位于特定世界坐标的物体,使用固定参照系来定义它们在真实世界中采用相同坐标系时的位置。 在用户四处走动时,有些内容在世界中始终是固定不变的状态,这些内容称为“世界锁定”内容。

应用通常会在启动时创建一个固定参照系,并在整个应用生命周期中使用这个坐标系统。 作为 Unity 中的应用开发人员,你可以开始根据用户头部的起始位置和朝向来确定原点,并基于原点放置内容。 如果用户移动到新的位置并想继续他们的“坐立空间级别”体验,你能够根据他们的新位置重新定位世界原点。

随着时间的推移,系统会识别到更多用户周围环境的信息,它可能会开始判断现实世界中各个点之间的距离比系统之前确定的是更短还是更长。 如果为 HoloLens 中的应用使用固定参照系来渲染全息影像,而用户在 5 米的范围内移动,你可能会观察到应用中全息影像在观察位置出现漂移。 所以如果你的应用需要用户在超过 5 米的范围移动,你可以创建一个世界级别体验,这会需要额外的技术来保持全息影像的稳定,详见下文。

动态参照系 Attached frame of reference

动态参照系会跟着用户移动,它会在参照系刚创建时确定一个固定的朝向。 这使用户在观看按该参照系确定位置的内容时会感到很舒适。 按照这种与用户相关的方式渲染的内容称为“身体锁定”内容。

当头戴显示设备无法确定它在世界中的位置时,动态参照系可提供唯一的坐标系统来渲染全息影像。 这使得它非常适合用于显示回退用户界面,来告知用户其设备无法在世界中发现他们。 “坐立空间级别”或更高级别的应用应含有“仅朝向”的回退信息,帮助用户通过使用与混合现实主页中类似的用户界面在应用中继续操作。

创建一个“站立空间级别”或“房间级别”体验

Standing-scale or Room-scale

在沉浸式头戴显示设备上提供比“坐立空间级别”更高级别的“站立空间级别”体验时,可以使用场地参照系。

若要提供“房间级别”体验,让用户能够在他们预先设定的 5 米范围边界内移动,你还可以添加“场地边界”。

场地参照系 Stage frame of reference

首次设置沉浸式头戴显示设备时,用户将定义一个场地,代表他们在混合现实中体验时的活动区域。 场地最小限度地定义了场地原点,用户使用设备时选择的地板位置和自己所面向的朝向确定了空间坐标系统。 在这个场地坐标系统下,将内容放置在坐标为 Y=0 的地板平面上,可以确保全息影像在用户站立时显示得很自然,这就是“站立空间级别”体验。

场地边界 Stage bounds

用户也可以自主定义场地边界,也就是在清理出的活动区域中定义一个用来在混合现实中移动的区域。 如果是这种情况,应用可以创建一个“房间级别”体验,使用边界来确保全息影像始终位于用户可及的范围内。

由于场地参照系使用单一固定坐标系来显示依赖于地板的内容,因此可以很便捷地用来移植 VR 头戴显示设备上的“站立空间级别”和“房间级别”体验。 但是,在这些 VR 平台上,单一坐标系只能在 5 米(16 英尺)直径内显示稳定内容,超出这个范围则会因为杆臂效应导致在系统调整时远离中心的内容产生明显的漂移。 为了能够移动超过 5 米,需要空间定位点。


创建“世界规模”体验

World-scale

Hololens 允许用户移动超过 5 米,是真正的“世界级别”体验。 创建一个“世界级别”的应用,要使用比“房间级别”体验更多的技术。

为什么单一精确坐标系统的使用范围不能超过 5 米

如今,在编写游戏、数据可视化应用或虚拟现实应用时,典型的方法是建立一个所有其他坐标都能可靠映射回的绝对世界坐标系。 在这种环境下,存在一个稳定的转换方式来定义世界中任何两个物体之间的关系。 如果不移动这些对象,它们的相对变换将始终保持不变。 在渲染一个事先知晓其中所有几何信息的纯虚拟世界时,这种全局坐标系可以发挥很好的作用。 现在,房间规模 VR 应用通常会建立这种绝对房间规模坐标系,其原点在地板上。

相比之下,HoloLens 等不受限制的混合现实设备通过动态传感器来理解世界,当用户在建筑物的整个楼层行走数米时,会不断调整其对周围环境的了解。 在“世界级别”体验里,如果根据单一精确坐标系来显示全息影像,这些影像总是会随时间推移发生漂移,无论是它们与世界之间还是它们彼此之间。

例如,头戴显示设备当前可能认为世界上的两个位置相距 4 米,然后再完善这种理解,了解到这些位置实际上相距 3.9 米。 如果这些全息影像最初被放在一个单一的刚性坐标系中,相距 4 米,那么其中一个将始终与现实世界相差 0.1 米。

空间定位点 Spatial anchors

在 Windows 混合现实中,你可以创建空间定位点来解决前述问题,也就是在世界中标记出用户放置全息影像时的重要放置点。 空间定位点表示系统应随时间跟踪的世界上的重要点。

随着设备对世界越来越了解,这些空间定位点可以根据需要调整相互间的位置,以确保每个定位点精确位于基于真实世界所放置的位置。 通过在用户放置全息影像的位置放置空间定位点,然后基于全息影像的空间定位点来定位该全息影像,可以确保即使在用户漫游数十米的情况下,全息影像也能保持最佳稳定性。

空间定位点会持续地根据其他的定位点进行调整,这是采用空间定位点的坐标系与固定参照系的主要区别:

固定参照系中的各全息影像彼此之间始终保持严格的位置关系。 但是当用户长距离移动后,该参照系的坐标系统可能会基于世界中的情况发生漂移,确保用户附近的全息影像显示稳定。

场地参照系中的全息影像也相互之间保持严格的位置关系。 相比于固定参照系,场地参照系始终基于其设定的物理原点保持固定不变。 但是,当场地坐标系中渲染的内容超出其 5 米边界时,就只有当用户站在该边界内时才会稳定显示。

根据某个空间定位点显示的全息影像,可能会根据使用另一个空间定位点的全息影像发生漂移。 这使得 Windows 能改进它对各个定位点位置的了解,即使(例如)是在一个定位点需要向左调整,另一个需要向右调整的情况下也是如此。

相比于固定参照系始终为了用户附近的稳定性进行优化,场地参照系和空间定位点则是为了确保其原点附近的稳定性而优化。 这有利于全息影像随时间推移能始终保持在准确的位置,但也意味着离坐标系原点过远的影像会受到非常大的杆臂效应的影响。 这是因为场地或定位点的位置和朝向上微小的调整会依据与原点的距离等比例放大。

一个好的经验法则是,确保根据遥远的空间定位点的坐标系渲染的所有物体位于距离其原点 3 米内的范围。 对于附近的场地原点,渲染远处的内容是没问题的,因为在用户的视野里,任何增加的位置错误只会影响发生很少漂移的小全息影像。

空间定位点的持久性 Spatial anchor persistence

空间定位点还可以让你的应用记住重要的位置,即使是在应用挂起或设备关闭后。

你可以将应用创建的空间定位点保存在硬盘中,并在下一次体验时重新加载回来,方法是将它们保存在应用的“空间定位点存储”中。 在保存和加载定位点时,你需要提供一个对应用而言有意义的关键词,用于唯一标识定位点。 可以将这些关键词理解为定位点的文件名。 如果想将其他的数据与定位点关联起来,例如用户放置在该位置的 3D 模型,可以将这些数据保存在应用的本地存储中,并将其与你选择的关键词关联起来。

通过将定位点持久保存在存储中,你的用户可以放置单独的全息影像或在周围设置工作空间,将全息影像放置在各处,并在后续的使用中找到它们。

还可以使用 Azure 空间定位点在 HoloLens、iOS 和 Android 设备上实现异步全息影像持久性。 通过共享持久的云空间定位点,多个设备可以随着时间推移观察相同的持久全息影像,即使这些设备没有同时出现,也是如此。

空间定位点共享 Spatial anchor sharing

应用还可以与其他设备实时共享空间定位点,从而提供实时共享体验。

通过使用 Azure 空间定位点,应用可以跨多个 HoloLens、iOS 和 Android 设备共享空间定位点。 通过使每个设备使用相同的空间定位点呈现全息影像,所有用户将看到全息影像显示在现实世界中的相同位置。

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

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

相关文章

Veritas NBU8.3.0.2 安装部署环境备份实施介绍(篇一)

1、本次有两台NBU服务器,都是Windows Server 2016 Standard 2、一台作为Master Server角色,另外一台则作为Media Server角色 3、两台服务器均已加入域并关闭防火墙 4、后期备份客户端会有Linux和Windows系统,也会对接VCenter无代理备份虚拟…

xss靶场详解

目录 1.第一题 2.第二题 3.第三题 4.第四题 5.第五题 6.第六题 7.第七题 8.第八题 1.第一题 在源码script标签里边,innerhtml是用于访问或修改 HTML 元素内的 HTML 内容的,这里是访问spaghet这个元素的,并通过括号里面的东西搜索当前…

图搜v1.1.3 - 图库几千张图片再也不怕了

图搜是一款使用先进的自然语言处理技术的相册搜索助手,支持通过简单的描述来搜索相册中的图片,如“草丛中的猫”或“公园里的狗”。这款应用完全免费、无需内购,且完全离线使用,保证了用户数据的安全与私密性。它的高效索引系统确…

法律知识有奖竞答

关于开展线上法律知识竞赛活动的通知 根据字【2024】008号 《关于进一步推动普法贯穿于各行业各领域的倡议》的相关要求,特举办本次线上答题活动。 一、活动时间 2024年08月19日08:00至08月25日24:00 二、活动对象 公司全体成员 三、竞赛规则 1、每人每天拥有1次…

Jenkins UI与接口自动化测试持续集成实战

篇幅较长,要耐心阅读哦~ 基础知识简要回顾 持续集成、持续交付的好处与产生的必然性Jenkins服务的搭建方法Jenkins节点管理与用户权限Jenkins插件Jenkins父子多任务关联运行Jenkins报警机制 目录 SeleniumUI自动化测试持续集成演练接口自动化测试持续集成演练 …

vue+echarts:echarts地图页面跳转

在setOption的平级写点击事件,给chart添加click监听 getmapChart.setOption({......})//和数据对应即可 //点击区域实现页面跳转getmapChart.on(click,function(params){// console.log(params);switch(params.name){case "xxxx":top.location.href"…

JUC阻塞队列(四):DelayQueue

1、DelayQueue介绍 DelayQueue 是一个延迟队列,生产者写入一个数据,这个数据具有被直接消费的延迟时间, 让数据具有延迟的特性。 DelayQueue底层也是基于二叉堆来实现的,DelayQueue本就是基于PriorityBQueue 实现的。 二叉堆结构每…

Kubernetes Pod入门

在 Kubernetes 中,一个重要的概念就是 Pod(豆英),Kubernetes 并不是直接管理容器他的最小管理单元叫做 Pod。的, 在 Docker 的应用中,我们把一个应用程序封装在一个镜像中,之后启动这个镜像并映射一个宿主机端…

x-cmd pkg | dua - 一个可以方便地了解给定目录的磁盘空间使用情况的工具

目录 简介用户首次快速实验指南技术特点竞品和相关项目进一步阅读 简介 dua 是 Disk Usage Analyzer 的简写,该工具可以快速查看给定目录的磁盘空间使用情况。 对于想要深入了解磁盘空间使用情况并有效管理存储的用户来说,Dua 是一个很有价值的工具。通…

华硕飞行堡垒键盘全部失灵【除电源键】

华硕飞行堡垒FX53VD键盘全部失灵【除电源键】 前言一、故障排查二、发现问题三、使用方法总结 前言 版本型号: 型号 ASUS FX53VD(华硕-飞行堡垒) 板号:GL553VD 故障情况描述: 键盘无法使用,键盘除开机键外…

轮式自主移动机器人的研究发展与ROS环境搭建

前言: 在轮式自主移动机器人的研发过程中,编程技术的重要性不言而喻。编程不仅涉及到机器人各种功能模块的协调运作,还决定了机器人能否实现复杂的行为决策和控制。首先,编程技术为机器人提供了“大脑”,从而使其能够感…

暑假请停止躺平!0门槛赚22万奖金!

在这个数字化时代,数据成为推动社会进步的重要力量。您是否想运用手中的数据,为治理与环保领域贡献力量?现在,机会就在眼前! 2024年厦门市大数据创新应用大赛正在火热进行中,我们诚邀全国高等院校在校学生…

工厂现场多功能帮手,三防平板改善管理体验

随着制造业的智能化变革,信息化、自动化和智能化逐渐成为工厂管理的新常态。在这一波技术浪潮中,三防平板作为一种多功能的工作工具,正在逐步改善工厂现场的管理体验。 一、三防平板的定义与特点 三防平板,顾名思义,是…

『 Linux 』利用UDP套接字实现简单群聊

文章目录 服务端通过传入命令处理实现远程命令执行使用Windows编辑UDP客户端实现Windows远程控制Linux接收套接字的其他信息UDP套接字简单群聊服务端UDP套接字简单群聊客户端运行测试及分离输入输出 参考代码 服务端通过传入命令处理实现远程命令执行 『 Linux 』利用UDP套接字…

springboot医疗远程管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图详细视频演示技术栈系统测试为什么选择我官方认证玩家,服务很多代码文档,百分百好评,战绩可查!!入职于互联网大厂,可以交流,共同进步。有保障的售后 代码参考数据库参…

el-table实现动态添加行,并且有父子级联动下拉框

<template><div><el-button click"addRow">添加行</el-button><el-table :data"tableData" style"width: 100%"><el-table-column label"序号"type"index"width"100"align"…

【ARM+Codesys 客户案例 】基于RK3568/A40i/STM32+CODESYS开发的控制器在自动输送分拣系统上的应用,支持定制

2021年“京东618” 累计下单金额超3438亿元,再次刷新纪录! 从下单到收货&#xff0c;各种货品均可在短短几天内通过四通八达的物流网络送达全国任何一个家庭。电子商务和快递物流的迅猛发展对仓储、分拣、配送效率和准确性均提出了更高的要求&#xff0c;加速了智能物流的发展。…

如何免费获取乡镇级边界数据geoJson数据

如何免费获取乡镇级边界数据geoJson数据 我们可以通过 阿里云数据可视化平台 &#xff0c;可以获取到中国各个省份/区级/县级的json数据&#xff0c;但是区级和县级&#xff0c;并没有包含街道和乡镇的数据 获取乡镇级边界数据 1.下载bigemap全能版 安装好后选择你要导出的…

C++竞赛初阶L1-13-第五单元-循环嵌套(29~30课)537: T456456 质因数分解

题目内容 已知正整数 n 是两个不同的质数的乘积&#xff0c;试求出较大的那个质数。 输入格式 输入只有一行&#xff0c;包含一个正整数 n&#xff08;6<n<109&#xff09;。 输出格式 输出只有一行&#xff0c;包含一个正整数 p&#xff0c;即较大的那个质数。 样例…

《黑神话:悟空》媒体评分解禁 M站均分82

《黑神话&#xff1a;悟空》媒体评分现已解禁&#xff0c;截止发稿时&#xff0c;M站共有43家媒体评测&#xff0c;均分为82分。 部分媒体评测&#xff1a; God is a Geek 100&#xff1a; 毫无疑问&#xff0c;《黑神话&#xff1a;悟空》是今年最好的动作游戏之一&#xff…