当前位置: 首页 > news >正文

2025-04-07 NO.3 Quest3 MR 配置

文章目录

  • 1 MR 介绍
    • 1.1 透视
    • 1.2 场景理解
    • 1.3 空间设置
  • 2 配置 MR 环境
    • 2.1 场景配置
    • 2.2 MR 配置
  • 3 运行测试

配置环境:

  • Windows 11
  • Unity 6000.0.42f1
  • Meta SDK v74.0.2
  • Quest3

1 MR 介绍

1.1 透视

​ 透视(Passthrough)是将应用的背景从虚拟的图层替换成现实图层,类似于 P 图更换背景,虚拟物体相当于叠加在现实图层之上的元素。

​ 在单纯的透视下,虚拟物体和现实物体二者之间并不会进行交互。

image-20250407195617353

1.2 场景理解

​ 场景理解(Scene Understanding,Meta 用 Scene API 实现)能用 2D 平面或 3D 立方体来代表现实物体的位置和范围。在系统中,现实世界由不同的 2D 平面和 3D 立方体组成。

​ 此外,场景理解用语义标签来标识不同的 2D 平面或 3D 立方体,让系统理解标识出的东西具体代表哪一种现实中的物体。

image-20250407195718818

​ 加上场景理解,设备能够理解现实环境,分辨出现实物体在什么位置。通过场景理解,识别出的现实物体和虚拟物体均属于 MR 世界中的一部分,因此能够实现虚拟物体和现实物体之间的交互。

场景模型(Scene Model)

​ Scene Model 由许多场景锚点(Scene Anchor)组成。每个 Scene Anchor 存储数据组件(Component),这些数据组件可能存储着不同种类的数据,用来表示几何和语义信息。

​ Scene Anchor 的内部结构类似于 ECS 结构

  • C:Component。包含数据。
  • E:Entity。是一系列 Component 组件的集合。相当于一个 ID 标识物体。
  • S:System。用来处理 Component 的数据,执行逻辑(因为 ECS 使用面向数据的思想,所以最终处理的还是 Component 中的数据)。
image-20250407200039874

场景锚点(Scene Anchor)

​ 在 Scene Model 中,每个 Scene Anchor 相当于一个 Entity。一个 Scene Anchor 中包含不同种类的 Component 组件,不同种类的组件里存储着不同类型的数据。

  • 如果用于表示整个房间,Scene Anchor 需包含 RoomLayout 组件和 AnchorContainer 组件。
    • RoomLayout:表示整个房间布局,包含天花板,地板,墙壁的布局(这三个元素可以构成一个房间)。
    • AnchorContainer:包含房间内的所有Scene Anchor。
  • 如果用于表示房间内单独的物体,Scene Anchor 需包含 Locatable 组件,Bounded2D 或者 Bounded3D 组件(取决于物体是 2D 平面还是 3D 物体),Semantic Classification(语义分
    类)组件。
    • Locatable:定位物体,表示物体在房间中的位置。
    • Bounded2D/3D:表示物体的边界框,一个 Scene Anchor 也可以同时拥有 2D 和 3D 组件(桌子,桌面可以用 2D,整个桌子可以用 3D)。
    • Semantic Classification:用标签来表示物体是哪一种。

空间锚点(Spatial Anchor)

​ Scene Anchor 和 Spatial Anchor 的区别:

  • Scene Anchor 由 Quest 系统创建,受系统管理。
  • Spatial Anchor 由应用本身创建,受用户管理。

1.3 空间设置

​ 空间设置(Space Setup,以前称为场景捕获)是捕获场景模型的过程,由 Quest 系统管理,因此在设备上运行的所有应用都可以访问相同的环境数据。

​ 空间设置是一个用户引导的过程:

  1. 在设置之前,需要先允许应用访问设备的空间数据。
  2. 开启权限后,自动扫描环境,获取空间网格,提取空间信息(如地板和天花板的高度,墙壁的位置)。
  3. 最后由用户修正错误(校准墙壁位置)和添加缺失信息(房间物体)。

​ 空间设置无法在串流模式下进行。在 Quest 中,依次点击“设置”->“实际空间”->“空间设置”进行设置。

image-20250407201458743

2 配置 MR 环境

​ 前置条件:

  1. 配置 Meta SDK 开发环境。参考:2025-03-17 NO.1 Quest3 开发环境配置教程_quest3 unity 开发流程-CSDN博客。
  2. 熟悉 Quest3 抓取物体操作。参考:2025-04-06 NO.2 Quest3 基础配置与打包-CSDN博客。

2.1 场景配置

​ 创建新场景 MRDemo,删除 Main Camera,并添加 OVRCameraRig,并更改 Gravity Factor 改为 0,防止玩家下坠。(具体操作参考条件 2)。

image-20250407202532871

​ 选择菜单栏中的“Meta”,依次点击“Tools”->“Building Blocks”。

image-20250407202739665

​ 找到 Passthrough 模块,将其拖拽到 Hierarchy 窗口中。

image-20250407202859894

​ 拖拽这一步会自动将 OVRCameraRig 下 CenterEyeAnchor 的相机背景改为纯黑色。

image-20250407202859894

​ 拖拽后会创建 Passthrough 物体,该物体的 OVR Passthrough Layer 脚本上定义了 Placement,用于将现实场景放于哪个图层(相对于虚拟场景)。

image-20250407203100630

​ 最后,创建一个 Cube,并添加 Hand Grab 功能(具体操作参考条件 2)。

image-20250407203825961

2.2 MR 配置

​ 点击 OVRCameraRig,设置 OVRManager.cs 脚本:

  • Passthrough Support:Supported
  • Boundary Visibility Support:Supported
  • Enable Passthrough:勾选
  • Should Boundary Visibility Be Suppressed:勾选

​ Boundary Visibility 原本是为 VR 应用设计的,在 VR 中用户看到的是完全虚拟环境,看不到现实环境,Boundary Visibility 能在一定程度上避免用户与现实物体相撞。但在 MR 应用中,用户大多数情况下能看到现实环境,所以安全边界显得有些多余,并且影响体验感。

​ 注意:只有开启了 Passthrough 透视功能的 MR 应用才能关闭安全边界,如果是纯 VR 应用则无法关闭。

image-20250407203929997

​ 选择菜单栏中的“Meta”,依次点击“Tools”->“Update AndroidManifest.xml”,更新安卓配置信息。

image-20250407204319054

3 运行测试

​ 运行 Unity,可以看到现实世界中有一个立方体位于眼前。但是在 Unity 的 Game 窗口是看不到现实场景的。

image-20250407204634010

​ 可以借助 Meta Quest Developer Hub 进行投屏查看。安装链接:Homepage | Meta Horizon OS Developers。

image-20250407205020922

​ 安装后,进入 Device Manager,点击 Cast 进行投屏。

image-20250407205049643

​ 在投屏界面中可看到现实场景。

image-20250407205259324

http://www.mrgr.cn/news/97477.html

相关文章:

  • 《从零搭建Vue3项目实战》(AI辅助搭建Vue3+ElemntPlus后台管理项目)零基础入门系列第二篇:项目创建和初始化
  • RAG中构建个人知识库
  • Python高级爬虫之JS逆向+安卓逆向1.2节: 变量与对象
  • 从传递函数到PID控制器
  • C++20 统一容器擦除:std::erase 和 std::erase_if
  • nacos集群启动问题
  • 2025 年前端与后端开发方向的抉择与展望-优雅草卓伊凡
  • 【Vue】选项卡案例——NBA新闻
  • Linux学习笔记(1) 目录结构与路径描述:对比 Windows 系统差异(期末,期中复习笔记全)
  • 前缀和和差分笔记
  • 【JS】二分查找
  • 【Pandas】pandas DataFrame astype
  • 4月7日随笔
  • 内网文件传输新体验,聊天、传输、自定义,一应俱全
  • C++中常用的十大排序方法之4——希尔排序
  • Redlinux(2025.3.29)
  • rhcsa第三次作业
  • 手搓多模态-06 数据预处理
  • 操作系统概述(3)
  • nginx管理nacos集群地址