Android 版快速入门

如需开始在 Android 上使用 ARCore,您可以运行 ARCore SDK 中包含的 hello_ar_kotlinhello_ar_java 示例应用。这些示例应用使用 OpenGL,这是一个用于渲染 2D 和 3D 矢量图形的编程接口。这些应用会显示检测到的所有平面,并允许用户点按平面来放置 3D 模型。

设置您的开发环境

打开示例项目

  1. 在 Android Studio 中,克隆 ARCore SDK GitHub 代码库。

    您可以通过多种方式执行此操作:

    • 对于已安装的 Android Studio:

      • Git 菜单中选择 Clone
      • Version control 下拉菜单中,选择 Git 作为版本控制系统。
      • URL 字段中,输入 ARCore GitHub 代码库的以下网址:

        https://github.com/google-ar/arcore-android-sdk.git

    • 您还可以打开 Terminal 并发出 git clone 命令,如下所示:

      git clone https://github.com/google-ar/arcore-android-sdk.git
  2. 按照以下方式打开其中一个示例项目(您必须明确打开项目才能构建和运行它)。

    • File 菜单中选择 Open
    • arcore-android-sdk/samples 文件夹中,选择 hello_ar_kotlinhello_ar_java 文件夹,然后点击 Open

准备设备或模拟器

您可以在受支持的设备上或 Android 模拟器中运行 AR 应用。您必须先在模拟器上更新 Google Play 服务(适用于 AR),然后才能运行应用。如需了解详情,请参阅在 Android 模拟器中运行 AR 应用

运行示例

确保您的 Android 设备已连接到开发机器,然后点击 Android Studio 中的 Run

Android Studio 会将您的项目构建为可调试的 APK,安装 APK,然后在您的设备上运行应用。如需了解详情,请参阅构建和运行应用

如果缺少 Google Play 面向 AR 的服务 或该服务版本过旧,系统可能会提示您安装或更新该服务。选择 CONTINUE 即可从 Google Play 商店安装该服务,或按照更新“面向 AR 的 Google Play 服务”中的说明手动更新该服务。

借助 hello_ar_java 应用,您可以在检测到的 AR 平面上放置三维 ARCore 棋子。它是使用 Android GL SurfaceView 实现的,该 SurfaceView 用于渲染相机预览和基本 AR 对象(例如平面和锚点)。hello_ar_java 的示例渲染框架可在 com/google/ar/core/examples/java/common/samplerender 中找到。

使用即时展示位置

借助 Instant Placement API,用户无需等待 ARCore 检测 Surface 几何图形,即可在屏幕上放置 AR 对象。随着用户在环境中进一步移动,系统会实时优化对象放置。

点按屏幕以放置对象。看到全息对象显示在屏幕上后,请务必继续移动设备,以便 ARCore 获取足够的周围环境数据,从而准确锚定虚拟对象。

一旦 ARCore 检测到表面几何图形并在放置对象的区域内建立可跟踪对象,系统就会自动更新对象的姿态以提高准确性。

即时展示位置

在图 1 中,即时展示位置已停用,并且 Surface 几何图形未定义。放置在桌球桌右侧地板上的物体(四个蓝色小圆点)看起来像是被推倒了,其姿势未定义。

在图 2 中,通过齿轮图标下的菜单启用了即时展示位置。

在图 3 中,启用“即时放置”后,系统会在场景中放置一个新对象。它以灰度(而非彩色)显示,表示尚未校正为准确的姿势。

在图 4 中,当检测到表面几何图形(由可跟踪网格线描述)时,新对象会变为彩色,并且其姿势准确无误。

使用深度

启用深度后,ARCore 会考虑场景中对象的几何图形和位置,并计算放置在场景中的对象相对于场景中其他对象的位置。它允许放置的对象被场景中的对象遮挡,并为您的应用增添真实感。

即时展示位置

在图 1 中,“深度”已停用。将一个物体放在桌球桌下。

在图 2 中,当设备在桌球桌周围移动时,对象似乎会跟随设备移动,而不会受到场景中其他对象的影响。

在图 3 中,“深度”已启用。

在图 4 中,随着设备在场景中移动,对象现在似乎被桌球桌遮挡了。

后续步骤