应用简介
ARCore全称为GooglePlayServicesforAR,这是谷歌官方推出构建增强现实应用的AndriodSDK,将虚拟内容,通过手机摄像头,与看到的现实世界整合,理解和跟踪它相对于现实世界的位置。它可以利用云软件和设备硬件的进步,将数字对象放到现实世界中,为用户带去很多既有用又有趣的体验,给你带来身临其境的感受,虽然对比那些精致的VR游戏没有那么好,但胜在体验起来方便快捷。同时也是增强现实专用的 Android SDK,可在很大程度上改变今后的工作和娱乐方式,当我们配合着游戏运行时,安装后直接启动游戏就可以体验到更加真实的ar效果!arcore支持虚拟对象的放置与跟踪、环境理解和光线估计。虚拟对象的放置和跟踪使用户能够将虚拟物体放置在现实世界中,并能够跟随物体的运动。软件支持国内大部分机型,比如华为、小米、三星以及vivo等等安卓系统,还可以和其他AR技术相结合搭配使用。感兴趣的小伙伴欢迎下载使用!
【功能说明】
1、动作捕捉:使用手机的传感器和相机,ARCore可以准确感知手机的位置和姿态,并改变显示的虚拟物体的位置和姿态
2、环境感知:感知平面,比如你面前的桌子、地面,在虚拟空间中准确复现这个平面
3、光源感知:使用手机的环境光传感器,感知环境光照情况,对应调整虚拟物体的亮度、阴影和材质,让它看起来更融入环境。
【特色介绍】
【环境理解】
ARCore会检测特征点和平面,从而不断提高对现实世界环境的理解。
ARCore可以查找看起来位于常见水平或垂直表面(例如桌子或墙)上的成簇特征点,并将这些表面作为几何平面提供给您的应用。ARCore还可以确定每个几何平面的边界,并将这些信息提供给您的应用。您可以使用这些信息将虚拟对象放在平坦的表面上。
由于ARCore使用特征点来检测平面,因此可能无法正确检测像白墙一样没有纹理的平坦表面。
【深度理解】
ARCore可以使用受支持设备中的主RGB摄像头创建深度图,其中包含有关表面与给定点之间的距离的数据。您可以使用深度图提供的信息实现沉浸式逼真的用户体验,例如使虚拟对象与观察到的表面准确碰撞,或使虚拟对象出现在真实对象的前面或后面。
【光估测】
ARCore可以检测其环境光线的相关信息,并为您提供给定摄像头图像的平均光强度和色彩校正。这些信息可让您在与周围环境相同的条件下照亮您的虚拟对象,从而提升其真实感。
【应用原理介绍】
当您的手机在世界范围内移动时,ARCore 使用称为同步定位和地图绘制(SLAM)的过程来了解手机相对于周围世界的位置。ARCore 在捕获的相机图像中检测视觉上不同的特征,称为 特征点,并使用这些点来计算其位置变化。视觉信息与来自设备 IMU 的惯性测量值相结合,以估计相机相对于世界随时间推移的姿态(位置和方向)。
通过将渲染 3D 内容的虚拟相机的姿势与 ARCore 提供的设备相机的姿势对齐,开发人员能够从正确的角度渲染虚拟内容。渲染的虚拟图像可以叠加在从设备摄像头获得的图像之上,使其看起来好像虚拟内容是现实世界的一部分。
【使用场景】
1、借助 ARCore 对现实世界的理解,您能够以一种与现实世界无缝整合的方式添加物体、注释或其他信息。
2、您可以将一只打盹的小猫放在咖啡桌的一角,或者利用艺术家的生平信息为一幅画添加注释。
3、运动跟踪意味着您可以移动和从任意角度查看这些物体。
4、即使您转身离开房间,当您回来后,小猫或注释还会在您添加的地方。
【使用教程】
1、使用即时展示位置
点按屏幕以放置对象。在屏幕上显示全息对象后,请确保继续来回移动设备,以便ARCore可以获取有关周围环境的足够数据,从而准确锚定虚拟对象。
一旦ARCore检测到Surface几何图形,并在放置对象的区域确立了可跟踪对象,对象姿势便会自动进行更新。
在图1中,Instant Placement已停用,且Surface几何图形未定义。位于台球桌右侧地板上的对象(四个小蓝点)出现翻转状态,其姿态则未定义。
在图2中,从齿轮图标下的菜单启用了Instant Placement。
在图3中,在启用Instant Placement功能后,场景中放置了一个新对象。它以灰度模式显示,而非彩色显示,表示系统尚未将其更正为正确的姿势。
在图4中,当检测到Surface几何图形(由可跟踪的网格线描述)时,新对象会变为彩色,并且其姿势准确无误。
2、使用深度
启用深度后,ARCore会考虑场景中对象的几何图形和位置,并计算场景中对象相对于场景中其他对象的位置。它可让场景中的对象遮挡住对象,并让您的应用具有真实感。
在图1中,深度已停用。一个对象会放在池表下。
在图2中,当设备在池表中移动时,无论场景中的物体是什么,该对象看起来都跟随设备。
在图3中,启用了深度。
在图4中,当设备在场景中移动时,对象现在被池表遮挡。
【快速入门】
如需开始在 Android 上使用 ARCore,您可以运行 ARCore SDK 附带的 hello_ar_kotlin 或 hello_ar_java 示例应用。这些示例应用使用 OpenGL,这是一种用于渲染 2D 和 3D 矢量图形的编程接口。这些应用会显示检测到的所有平面,并允许用户点按平面来放置 3D 模型。
1、设置您的开发环境
安装 Android SDK Platform 7.0(API 级别 24)或更高版本的 Android Studio 3.1 版或更高版本。
2、打开示例项目
(1)在 Android Studio 中,克隆 ARCore SDK GitHub 代码库。
为此,您可以采用多种方式:
对于现有的 Android Studio 安装:
从 Git 菜单中选择 Clone。
在 Version control 下拉菜单中,选择 Git 作为版本控制系统。
在 URL 字段中,输入 ARCore GitHub 代码库
(2)按如下方式打开一个示例项目(您必须明确打开一个项目才能构建并运行该项目)。
从 File 菜单中选择 Open。
在 arcore-android-sdk/samples 文件夹中,选择 hello_ar_kotlin 或 hello_ar_java 文件夹,然后点击 Open。
3、准备设备或模拟器
您可以在受支持的设备或 Android 模拟器上运行 AR 应用。您必须先在模拟器上更新 AR 服务的 Google Play 服务,然后才能运行该应用。
4、运行示例
确保您的 Android 设备已连接到开发机器,然后点击 Android Studio 中的 Run 。
Android Studio 将您的项目构建为可调试的 APK,安装该 APK,然后在您的设备上运行该应用。
如果适用于 AR 的 Google Play 服务缺失或已过期,系统可能会提示您安装或更新。选择 CONTINUE 可从 Google Play 商店安装它,或按照更新 AR 版 Google Play 服务中的说明手动更新该应用。
借助 hello_ar_java 应用,您可以在检测到的 AR 平面上放置一个三维 ARCore 典当。它通过 Android GL SurfaceView 实现,Android GL SurfaceView 用于渲染相机预览和基本 AR 对象,例如平面和锚点。可以在 com/google/ar/core/examples/java/common/samplerender 中找到 hello_ar_java 的示例渲染框架。
注意:hello_ar_java 中的生命周期方法与 OpenGL 应用中通常提供的生命周期方法不同。为确保您自己的应用的 AR 设置正确无误,请遵循 hello_ar_java 中的生命周期管理逻辑。
5、使用即时展示位置
借助 Instant Placement API,用户可以将 AR 对象置于屏幕上,而无需等待 ARCore 检测表面几何图形。随着用户继续在环境中移动,系统会实时优化对象放置位置。一旦 ARCore 能够在放置 AR 对象的区域中检测到正确的姿态,白色对象便会自动更新为姿态准确,并变为不透明。
hello_ar_java 中会自动启用 Instant Placement。点按屏幕上的齿轮图标,然后从下拉菜单中选择 Instant Placement。您应该已经选中 Enable Instant Placement 复选框。
点按屏幕以放置对象。在屏幕上显示全息对象后,请务必继续来回移动设备,以便 ARCore 可以获取关于周围环境的足够数据来准确锚定虚拟对象。
【支持机型】
ARCore 可以在运行 Android 7.0 (Nougat) 及更高版本系统的多种符合资格的 Android 手机上使用。 在开发者预览版期间,ARCore 支持以下设备(如下图)
后来扩大了其它设备的支持(如下图)
【常见问题】
1、为什么打开应用后黑屏或闪退?
因为AR需要相机权限,所以应用没有检查权限时会发生异常退出。如果相机权限已打开,则是应用自身问题。
2、为什么虚拟物体容易飘或平面长时间识别不出来?
因为AR需要现实环境有一些图案特征,如果手机的摄像头朝着洁白的墙壁、纯色的地面等会无法工作,所以AR物体容易飘。
3、为什么安装了ARCore,应用仍提示安装ARCore?
因为手机安装的ARCore版本低于应用需要的ARCore版本,所以ARCore仍然提示安装。虽然ARCore没有图形界面,但可以在系统设置的应用列表中找到ARCore,查看版本号和卸载旧版本。
4、为什么很多应用一开始要拿着手机扫描地面?
因为AR需要一个水平面来固定虚拟物体,地面和桌面是比较好的水平面,所以要先扫描地面。但在地面固定虚拟物体不是唯一的方式,还可以在图像上固定、在空间固定、点击屏幕固定。
5、ARCore反复提示“已停止运行”并且无法工作?
部分机型安装了1.8版,ARCore会反复提示“已停止运行”。若出现该问题,请更换成稳定的1.7版或最新版本的ARCore。
【更新内容】
v1.45.242050283:
Google Play Services for AR会自动安装和更新到符合条件的设备上,因此Google Play Store中具有AR功能的应用程序无需下载和安装任何进一步的内容即可运行。
本版本新增功能:
•更新了支持的设备列表。