你们中的许多人一定玩过 Pokemon Go,这是一款基于增强现实的游戏,几年前风靡一时。如果您使用过或曾经使用过任何其他涉及增强现实概念的应用程序(例如:Snapchat 使用 AR 虚拟地在您的脸上应用滤镜和不同的对象),您肯定知道使用它是多么美妙的体验并且与这样的应用程序进行交互。
历史
人们很难相信,但事实是,增强现实是一项相当古老的技术。它于 1968 年由伊万·萨瑟兰 (Ivan Sutherland) 开发出第一个名为“达摩克利斯之剑”的头戴式显示系统而发明。然而,“增强现实”一词直到 1990 年才由波音公司研究员蒂姆·考德尔 (Tim Caudell) 创造。
从那时起,增强现实的用例数量开始增加,各种技术开始对其进行调整,包括 NASA 的 X-38 航天器的混合合成视觉系统,其中 AR 技术用于帮助在测试飞行到谷歌眼镜设备时提供更好的导航。一副增强现实眼镜,用户可以佩戴它以获得身临其境的体验。
什么是 Google ARCore?
如果从头开始,增强现实模拟并不是一项简单的任务。这就是为什么市场上有合适的工具可以帮助开发人员轻松高效地构建所需的应用程序。有大量软件开发工具包可用于创建基于增强现实的应用程序,而在 AR 开发社区中备受重视的流行 SDK 之一是 Google 的 ARCore。
ARCore 是由 Google 开发的平台,于 2018 年 3 月 1 日发布,用于构建增强现实体验。 ARCore 使个人手机能够感知周围环境并了解周围环境以与信息进行交互。它基本上使用三个关键功能,即运动跟踪、环境理解、 和光估计 (所有这些都在下面描述)有助于将虚拟对象放在通过手机摄像头看到的世界的真实环境中。
众所周知,基础知识是学习和应用任何概念的基石,让我们在深入了解 ARCore 的实现之前先看看它的内部工作原理。
ARCore 的基本概念
以下是一些与 ARCore 相关的术语和概念。
- 运动跟踪:当您使用基于 AR 的应用程序时,系统会首先要求您打开相机,有时还会要求您移动手机。这样做是为了捕捉您的周围环境并从中检测不同的特征,也称为特征点。 ARCore 使用 SLAM(同步定位和映射)来了解您的手机相对于周围环境的位置。一旦检测到特征点,SLAM 就会使用它们来计算位置的变化。为了计算手机相对于其周围环境的位置和方向,随着时间的推移,相机检测到的视觉信息与 IMU(惯性测量单元:一种电子设备,用于测量和报告身体的特定力、角速率,有时是身体的方向,使用加速度计、陀螺仪,有时是磁力计的组合)。现在,渲染 3D 对象的虚拟摄像头与 ARCore 提供的设备摄像头对齐,使开发人员能够从正确的角度渲染虚拟对象。这就是渲染的虚拟图像可以覆盖在从设备的相机获得的图像之上的方式,使其看起来好像虚拟对象是世界真实环境的一部分。
- 环境理解:您一定见过将 3D 对象放置在特定现实世界对象上的应用程序,例如在桌子上跳舞的猫或在地板上的沙发上(例如:Houzz 应用程序是帮助您设计室内设计的著名应用程序之一将 3D 家具放在地板上)。在这里,我们将讨论应用程序如何如此详细地了解平面或水平表面。正如我们已经讨论过的特征点,ARCore 会寻找位于相同水平或垂直表面(如桌子或门)上的这些特征点的集群,并将这些信息提供给您的应用程序。稍后,此信息用于将 3D 对象放置在平面上。
- 光估计:为了使虚拟内容更加逼真,将光视为需要处理的重要领域之一始终是一个不错的选择。由于光线在落在物体上后会向不同方向反射,从而使环境对观看者的眼睛感到愉悦,因此光估计的概念试图对 3D 物体做同样的事情。在捕获周围环境的图像后,ARCore 会提供有关图像平均强度和颜色校正的信息,让开发人员可以在与周围环境相同的条件下照亮虚拟对象。
你的手机支持 ARCore 吗?
目前,并非所有设备都支持 ARCore,因为每个设备的摄像头质量和内部传感器规格显然不符合 ARCore 认证的要求。 ARCore 认证是一个过程,如果设备通过了所有规格测试,则称其支持 ARCore。这样的认证是必要的,因为谷歌希望用户拥有最佳的 AR 应用体验。 ARCore 的三个能力需要一个好的摄像头和多个传感器。例如,运动跟踪是通过组合相机图像和运动传感器输入来完成的,以确定用户的设备如何在现实世界中移动。因此,相机和硬件(包括 CPU)的质量都经过彻底检查,以确保有效的性能。您可以通过此链接查看一些支持的设备型号。
Android 版 ARCore 入门
先决条件: Android开发基础
- 安装 Android Studio 3.1 或更高版本以及 Android SDK Platform 7.0(API 级别 24)或更高版本。 (安装教程链接:https://developer.android.com/studio/install)
- 通过使用以下命令“git clone https://github.com/google-ar/arcore-android-sdk.git”(不带引号)克隆存储库来获取示例项目。
- 在 Android Studio 中,转到 file->Open 并选择位于 arcore-android-sdk 目录中的示例子目录中的 HelloAR 示例项目。
- 现在,您可以在受支持的设备或 Android 模拟器上运行该应用程序。 (在模拟器中,您必须登录 Google Play Store 或手动更新 Google Play Services for AR)。
- HelloAR 应用程序是一个非常简单的 AR 应用程序,它允许用户在检测到的 AR 平面表面上放置和操纵安卓小雕像。
ARCore的优势
- ARCore 可与 Unity3D 和 Unreal Engine 配合使用,也适用于使用Java编程语言的 Android 设备。
- Google 的 ARCore 是相应操作系统 Android 的稳定组成部分,大约可用于到 2017 年底,智能设备将达到 1 亿台。
- 谷歌完成了苹果在所有智能设备上提供 AR 功能的努力。本机应用程序以及第三方提供商的应用程序无法访问操作系统的本机 AR 功能。作为可靠且长期的 AR 技术提供商,Google 及其 ARCore 开发人员为 AR 应用程序开发提供了稳定的基础。
ARCore 的缺点
- ARCore 只能用于 Android 操作系统的设备。
- 如果要在具有 IOS 的设备中使用 ARCore 的应用程序使其跨平台,Apple 的新 AR 解决方案 ARKit 可以用作 ARCore 的对应物。尽管 ARKit 和 ARCore 为相同的目标而努力,但如果新的 AR 应用程序的每个函数都可以在两个平台上实现,则必须在每种情况下进行测试。
参考
- https://developers.google.com/ar/discover/concepts
- https://developers.google.com/ar/develop/的Java/快速入门