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

Vuforia AR篇(六)— Mid Air 半空识别

目录

  • 前言
  • 一、什么是Mid Air?
  • 二、使用步骤
  • 三、示例代码
  • 四、效果

前言

增强现实(AR)技术正在改变我们与数字世界的互动方式。Vuforia作为先进的AR开发平台,提供了多种工具来创造引人入胜的AR体验。其中,Mid Air功能以其能够在三维空间中精准定位虚拟对象而备受瞩目。本文将详细介绍如何在Unity中利用Vuforia的Mid Air功能,创建一个仿佛置身于现实中的AR体验。


一、什么是Mid Air?

Mid Air是Vuforia的一项核心技术,它允许开发者在用户的周围空间中任意位置放置虚拟对象。这项技术的关键在于其能够在没有实体表面的情况下,通过空间识别来追踪虚拟内容。这意味着开发者可以在空中创建一个虚拟的“舞台”,在这个舞台上展示和交互虚拟内容。

二、使用步骤

  1. 设置相机:在 Unity 场景中添加一个 Vuforia AR 相机。可以在 GameObject -> Vuforia Engine -> AR Camera 中找到。

  2. 创建Mid Air Stage

​ 在 AR Camera 的 Inspector 面板中,确保 Vuforia Behaviour 启用。

​ 添加一个 Mid Air Stage。可以在 GameObject -> Vuforia Engine -> Mid Air -> Mid Air Stage 中找到。

​ Mid Air Stage是一个虚拟的平台,用于放置和展示AR内容。在Unity编辑器中有视觉标记,指示其大小为100厘米见方,但这些标记仅用于辅助开发,不会在最终的AR体验中显示。

​ Mid Air Stage 是虚拟对象放置的地方。可以在其下添加任何 3D 对象。

在这里插入图片描述

  1. 配置 Mid Air Positioner

​ 添加一个 Plane Finder(GameObject -> Vuforia Engine -> Mid Air -> Mid Air Positioner)。

​ Mid Air Positioner 会自动检测地面并生成锚点。在 Mid Air Positioner 的 Inspector 中,确保设置正确的 Mid Air Stage。

在这里插入图片描述

  1. 创建显示模型

​ 添加一个 Cube(Mid Air Stage -> Cube)。

​ 并把尺寸设置为0.3

在这里插入图片描述

  1. 打印或者在手机上全屏显示测试图片,直到出现识别窗口UI

    点击然后就会在创建中创建Cube

    在这里插入图片描述

三、示例代码

using UnityEngine;
using Vuforia;public class GroundPlaneHandler : MonoBehaviour
{public GameObject objectToPlace;void Start(){VuforiaBehaviour.Instance.DevicePoseBehaviour.OnTargetStatusChanged += OnTargetStatusChanged;}void OnTargetStatusChanged(ObserverBehaviour behaviour, TargetStatus targetStatus){if (targetStatus.Status == Status.TRACKED){Vector3 position = behaviour.transform.position;Quaternion rotation = behaviour.transform.rotation;Instantiate(objectToPlace, position, rotation);}}
}

四、效果

在这里插入图片描述

http://www.lryc.cn/news/365778.html

相关文章:

  • 统计信号处理-匹配滤波器实现与验证(matlab仿真)
  • 四川汇聚荣聚荣科技有限公司综合实力如何?
  • 【Power Compiler手册】7.功耗分析
  • 详解MySQL的MVCC机制与间隙锁
  • 新版校园跑腿外卖独立版+APP+小程序前端外卖配送平台源码
  • # ROS 获取激光雷达数据 (Python实现)
  • 单点登录(SSO)前端怎么做
  • 【面试干货】索引的作用
  • 【成品设计】基于红外线的目标跟踪无线测温系统设计
  • 抽象,自定义函数,递归
  • php设计模式之策略模式详解
  • Android在不同层面增加应用
  • 【Pycharm】功能介绍
  • 安卓手机平板使用JuiceSSH无公网IP远程连接本地服务器详细流程
  • 告别冗长代码:Java Lambda 表达式如何简化你的编程
  • 不同生成式AI模型的优缺点(GAN,VAE,FLOW)
  • VMware ESXi 8.0U2c macOS Unlocker OEM BIOS 集成网卡驱动 Marvell AQC 网卡定制版
  • SpringCloud Consul基础入门与使用实践总结
  • pdf拆分成有图和无图的pdf(方便打印)
  • 通用树查找算法
  • Flutter 中的 TableCell 小部件:全面指南
  • clickhouse学习笔记(一)入门与安装
  • 【JavaEE精炼宝库】多线程(4)深度理解死锁、内存可见性、volatile关键字、wait、notify
  • 使用Ollama+OpenWebUI部署和使用Phi-3微软AI大模型完整指南
  • k8s的ci/cd实践之旅
  • 笔记96:前馈控制 + 航向误差
  • 延时任务工具类
  • springboot下载grpc编译文件,报错缺少protoc-gen-grpc-java:1.34.1:exe不存在
  • 【面试干货】 非关系型数据库(NoSQL)与 关系型数据库(RDBMS)的比较
  • JAVA学习-练习试用Java实现“简化路径”