文章目录
9. 空间映射
本地空间锚点处于活动状态时,系统会将保留在该锚点附近的传感器数据排定优先顺序。如果你不再使用空间定位点,请停止访问其坐标系。这允许根据需要删除其基础传感器数据。
这对于你持久保存到空间定位点存储的局部定位点尤其重要。这些定位点后面的传感器数据将永久保留,以允许你的应用程序在将来的会话中查找该定位点,这将减少用于跟踪其他锚点的空间。仅保留需要在未来的会话中再次查找的本地锚,并在用户不再有意义的情况下将其从应用商店中删除。
对于云空间定位点,存储可以根据场景需要进行扩展。你可以根据需要存储任意数量的云定位点,仅当你知道用户不需要在该定位点上再次查找全息影像时才会将其释放。
9.1 空间映射的重要性
利用空间映射,可以将对象放置在真实的表面上,这有助于在用户的世界中定位对象,并利用真实的深度提示。基于其他全息影像和真实世界对象的遮挡效果可以帮助说服用户这些全息影像实际位于他们的空间中。在空间中漂浮或随用户移动的全息影像并不会给人真实感。如果可能,最好在表面上轻松放置项目。
在放置或移动全息影像时显示表面(使用简单的投影网格)。这将帮助用户了解他们最适合放置全息影像的位置,并在用户尝试放置全息影像的位置上提供反馈。如果用户的角度太多,您可以向用户提供“布告栏项目”。
9.2 空间映射概念
用于空间映射的两个主要对象类型是 “空间图观察器” 和 “空间图面”。
应用程序向空间图观察器提供一个或多个边界卷,以定义应用程序希望接收空间映射数据的空间区域。对于每个卷,空间映射将为应用程序提供一组空间图面。这些卷可能是固定的(在固定位置与现实世界相关),也可能附加到HoloLens(它们在环境中移动时不会进行旋转)。每个空间图面描述了小空间中的实际表面,表示为附加到世界锁定的空间坐标系统的三角形网格。
当HoloLens 2收集到关于环境的新数据时,如果环境发生变化,空间图面将显示、消失和变化。
空间映射
9.3 空间映射于场景理解
对于HoloLens 2,可以利用场景理解SDK(通过EnableWorldMesh设置)来查询静态版本的空间映射数据。下面是访问空间映射数据的两种方法之间的差异:
空间映射API:
- 有限范围:用户可以使用受限制的应用程序大小的空间映射数据。
- 通过SurfacesChanged事件提供更改的网格区域的低延迟更新。
- 每个立方米参数的三角形控制的详细信息级别。
场景理解SDK:
- 无限制范围:提供查询半径内所有扫描的空间映射数据。
- 提供空间映射数据的静态快照。获取更新的空间映射数据需要对整个网格运行新的查询。
- RequestedMeshLevelOfDetail设置控制的详细级别的详细信息。
9.4 环境扫描体验
使用空间映射的每个应用程序都应考虑提供 “扫描体验”;应用程序引导用户扫描应用程序正常运行所必需的表面所使用的过程。
环境扫描
10. 应用类型
10.1 增强环境应用
混合现实可为用户带来价值的最强大的方式之一是方便在用户的当前环境中放置数字信息或内容。这种方法属于增强现实应用的范畴。它在以下情况下尤其常见:当数字内容的上下文在真实环境中非常重要时,或者在用户体验中将用户的实际环境与数字内容结合起来至关重要时。这种方法还能让用户轻松地从实际任务转移到数字任务,并且能够轻松地进行操作,这有助于增加用户对混合现实应用的信任,从而确保用户所看到的内容真正融入了他们的环境之中。
10.2 混合环境应用
由于Windows Mixed Reality能够识别和映射用户的环境,因此它能够创建可完全叠加在用户空间上的数字层。精简层会考虑用户环境的形状和边界,但是应用程序可能会选择转换最适合从而深入了解应用程序中用户的某些元素。这称为混合环境应用。与增强的环境应用不同,混合环境应用程序可能只关心环境,以最好地利用其构成来鼓励特定用户的行为(例如,鼓励移动或探索),或者通过将元素替换为其他元素来进行改变。这种类型的体验甚至可能会将元素转换为完全不同的对象,但仍会保留对象的大致尺寸作为其基础。
10.2 沉浸式环境应用
沉浸式环境应用以完全更改用户世界的环境为中心,并可将其置于不同的时间和空间。这些环境看起来非常真实,只是在应用程序创建者的想象中受到限制。与混合环境应用不同,一旦Windows Mixed Reality标识用户的空间,沉浸式环境应用可能会完全忽略用户的当前环境,并将其替换为自己的整个股票。这些体验还可能会完全分离时间和空间,这意味着用户可以通过沉浸式体验来浏览罗马等地,而实际环境的上下文对于沉浸式环境应用可能并不重要。
沉浸式环境