ARCore,全称Google Play Services for AR ,是谷歌推出的AR平台。它能与苹果的ARKit比肩,致力于助力开发者打造AR应用。此平台借助智能手机摄像头,把虚拟内容融入真实世界,达成对虚拟内容在现实世界位置的认知与追踪。凭借ARCore以及与之兼容的移动设备,开发者能够让用户透过智能手机感受三维动画。要留意的是,ARCore属于用于构建增强现实应用的Android SDK,是开发人员在桌面上无法看见的系统组件。
ARCore是谷歌推出的增强现实体验搭建平台。它借助各类API,让手机得以感知所处环境、认知现实世界并与信息交互。部分API可应用于安卓和iOS系统,从而达成共享AR体验。
ARCore运用三个主要功能,把虚拟内容与借助手机摄像头所看到的现实世界进行整合:
1. 通过动作跟踪技术,手机能够知晓并追踪自身相对于外界的位置。
2、通过环境理解功能,手机能够探测各类表面(像地面、咖啡桌或者墙壁等水平、垂直与倾斜表面)的尺寸及位置。
3、通过光估测功能,手机能够对当前环境的光照条件进行估测。
本质上,ARCore 主要进行两件事:当移动设备移动时追踪其位置,并建立自身对现实世界的认知。
ARCore运用的运动跟踪技术,借助手机相机来识别那些具有特点的点(也就是特征点),并对这些点随时间推移产生的变化进行跟踪。通过将这些点的移动情况与手机惯性传感器的读数相结合,ARCore能够在手机移动过程中明确其位置与方向。
ARCore 除了能够确定关键点,还会对诸如桌子或地面这类平坦表面进行检测,并对周围区域的平均光照强度予以估测。这些功能相互配合,使得 ARCore 能够构建起自身对周围世界的认知。
依托 ARCore 对现实世界的认知,您能够以一种与现实世界完美融合的方式,放置对象、添加注释或展示其他信息。比如,您可以在咖啡桌的一角放上一只正在打盹的小猫,又或者依据艺术家的生平信息为一幅画作添加注释。移动跟踪功能让您可以随意移动并从任何角度去查看这些物体,哪怕您转身走出房间,等您再次回来时,小猫或者注释依旧会处于您离开时它们所在的位置。
若要在Android设备上开启使用ARCore,您能够运行ARCore SDK所附带的hello_ar_kotlin或hello_ar_java示例应用程序。这些示例应用运用了OpenGL,它是一种用于渲染2D及3D矢量图形的编程接口。这些应用程序会展示检测到的所有平面,还允许用户点击平面以放置3D模型。
1. 对您的开发环境进行设置
安装Android Studio 3.1版及以上版本,并确保其包含Android SDK Platform 7.0(API级别24)及更高版本。
2、打开示例项目
(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
(2)通过以下方式打开一个示例项目(要构建并运行该项目,您必须明确打开一个项目)。
在File菜单里选取Open。
于arcore - android - sdk/samples文件夹里,挑选hello_ar_kotlin文件夹或者hello_ar_java文件夹,接着点击Open。
3、备好设备或模拟器
要运行AR应用,您可在受支持的设备或者Android模拟器上操作。不过,在模拟器上运行该应用之前,您必须先更新模拟器上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 里会自动开启即时放置功能。点击屏幕上的齿轮图标,接着从下拉菜单中选择即时放置。此时您应当已勾选“启用即时放置”复选框。
轻点屏幕放置对象。当全息对象在屏幕上显示后,一定要持续来回移动设备,这样ARCore就能获取足够的周围环境数据,从而准确锚定虚拟对象。
1. 为何打开应用后会出现黑屏或闪退的情况?
应用出现异常退出,若未检查权限,原因在于AR需要相机权限;若相机权限已开启,那么问题出在应用自身。
2. 为何虚拟物体容易出现飘动现象,或者平面长时间无法被识别呢?
由于AR运行依赖现实环境具备一定图案特征,当手机摄像头对准洁白的墙壁、纯色的地面等场景时,AR便无法正常工作,进而导致AR物体容易出现漂移现象。
3、为何已经安装了ARCore,应用却依旧提示安装ARCore呢?
由于手机所安装的ARCore版本低于应用所需的ARCore版本,故而ARCore依旧提示进行安装。尽管ARCore不存在图形界面,不过能够在系统设置的应用列表里找到ARCore,进而查看版本号并卸载旧版本。
4、为何许多应用在启动时需要拿着手机扫描地面呢?
由于AR需要借助一个水平面来稳固虚拟物体,地面与桌面属于较为理想的水平面,故而需先对地面进行扫描。然而,在地面固定虚拟物体并非是唯一可行的办法,还能够在图像上固定、于空间中固定,亦或是通过点击屏幕来固定。
5、ARCore老是提示“已停止运行”,导致无法正常工作该怎么办?
部分机型在安装1.8版后,ARCore会频繁提示“已停止运行”。若遇到此问题,建议更换为稳定的1.7版或最新版本的ARCore。
我们运用了三项关键技术,以此实现虚拟内容与现实世界在其中的整合:
运动跟踪技术使得手机能够感知并追踪自身在所处环境中的相对位置。
-借助环境理解技术,手机能够探测到像地表或咖啡桌这类扁平的水平面。
-光照强度估测技术能够对当下环境的光照状况进行估量。
ARCore不能单独开启运行,需与游戏配合使用。
(新版本)软件功能:4.1
软件使用:4.5
应用内容:4.7
工具流畅:4.8