Google Play Services for AR 是谷歌面向安卓系统打造的一款服务框架。该软件具备极为强大的实用功能,用户只需开启软件,就能随心使用谷歌的各类软件,涵盖游戏、小说、音乐、影视等。而且,软件的界面设计极为简约,所有功能清晰直观,给用户带来十分出色的使用体验。
另外,Google Play Services for AR涵盖了用户身份验证、云存储、实时数据库、推送通知等功能,旨在简化应用程序的开发与管理流程,让用户操作和使用起来更为便捷。
若要在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、备好设备或模拟器
您能够在支持的设备或者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 之前,先了解一些基本概念会大有裨益。这些概念共同阐释了 ARCore 是如何让虚拟内容呈现出仿佛真实地呈现在真实表面上,或是附加于现实世界位置的效果。
1、运动追踪
当您的手机在现实世界里移动时,ARCore 借助一个名为同时定位和映射(SLAM)的流程,知晓手机相对于周边世界的位置。ARCore 会探测所捕获摄像头图像中视觉上各异的特征(称作特征点),并依据这些点计算其位置变动。这些视觉信息会与设备 IMU 的惯性测量成果相结合,共同用于估算摄像头在一定时间内相对于现实世界的姿态(位置与方向)。
开发者通过将用于渲染3D内容的虚拟摄像头姿势,与ARCore提供的设备摄像头姿势进行对齐,就能从正确角度渲染虚拟内容。渲染出的虚拟图像可叠加在从设备相机获取的图像之上,让虚拟内容看起来如同现实世界的一部分。
2、环境理解
ARCore通过检测特征点与平面,持续深化对现实世界环境的认知。
ARCore 能够寻找那些看似处于常见的水平或垂直表面(像桌子、墙壁这类)上的成簇特征点,并且会把这些表面以几何平面的形式提供给你的应用程序。此外,ARCore 还能够判定每个几何平面的边界,同时将这些信息也提供给你的应用程序。你可以利用这些信息,把虚拟对象放置在平坦的表面之上。
ARCore 依靠特征点检测平面,所以对于类似白墙这种毫无纹理的平坦表面,可能无法实现准确检测。
3、深度理解
ARCore 能够借助受支持设备里的主 RGB 摄像头生成深度图,此深度图涵盖了关于表面与特定点之间距离的数据。利用深度图所提供的信息,您能够打造沉浸式且逼真的用户体验,比如让虚拟对象与观察到的表面精准碰撞,亦或是使虚拟对象出现在真实对象的前方或后方。
4、光估测
ARCore 能够探测所处环境光线的相关数据,同时为你提供指定摄像头图像的平均光强度以及色彩校正。借助这些信息,你能够在与周围环境一致的条件下,对虚拟对象进行打光,进而增强其真实感。
5、用户互动
ARCore借助点击测试获取与手机屏幕对应的 (x,y) 坐标(该坐标通过点按或应用所支持的其他互动方式提供),接着将光线投射到摄像头的世界视图里,随后返回该射线相交的所有几何平面或特征点,以及交点在现实世界空间中的姿态。如此一来,用户便能选择环境中的对象,或者以其他方式与之互动。
6、定向点
通过定向的点,您能够把虚拟对象放置在倾斜的表面之上。当您进行会返回特征点的点击测试操作时,ARCore 会对附近的特征点加以查看,并利用这些特征点去尝试估算给定特征点处表面的角度。随后,ARCore 会给出一个将该角度纳入考量的姿势。鉴于 ARCore 采用特征点聚类的方式来检测 Surface 的角度,所以对于没有纹理的表面(比如白墙),有可能无法准确检测。
7、锚点与可跟踪对象
姿态会因 ARCore 不断优化其对自身位置及环境的认知而产生改变。当你打算放置一个虚拟对象时,需定义锚点,以此保证 ARCore 能够追踪对象在时间推移过程中的位置。一般而言,你可依据点击测试所返回的姿势来创建锚点,这在用户互动部分有相关阐述。
姿态会产生变化,这表明ARCore或许会对环境对象(比如几何平面与特征点)的位置进行更新。平面和点属于一种特殊类型的对象,被称作“可跟踪对象”。从名称就能理解,ARCore会随着时间的推进对这些对象展开跟踪。你能够把虚拟对象锚定到特定的可跟踪对象上,这样即便设备四处移动,虚拟对象与可跟踪对象之间的关系也能维持稳定。也就是说,要是你把一个虚拟的Android小雕像放置在书桌上,即便ARCore随后调整了与书桌相关联的几何平面的姿态,Android小雕像依旧会看起来处于桌子之上。
注意:为减少CPU费用,应尽量重复利用锚点,并将不再需要的锚点进行分离。
8、增强图像
通过增强图像功能,您能够创建可对特定2D图像(如产品包装或电影海报)做出响应的AR应用。当用户把手机相机对准特定图片时,就能触发AR体验。举例来说,用户可将手机相机对准电影海报,使角色跃然眼前并呈现。此外,ARCore还能追踪移动的图像,像行驶中公交车侧面的广告牌这类。
您既能够通过离线编译图片来创建图片数据库,也能够从设备实时添加单张图片。完成注册后,ARCore会对这些图像及其边界进行检测,进而返回相应的姿态。
ARCore支持的机型,可在运行Android 7.0(Nougat)及更高版本系统的多款符合条件的Android手机上使用。 在开发者预览版阶段,ARCore支持以下设备(如下图所示)。
后来增加了对其他设备的支持(如下图)
1、Google Play 服务能够优化您的应用使用感受。它提升了离线搜索的速度,呈现出更具沉浸感的地图,同时优化了游戏体验。
2、倘若您卸载此软件,应用或许无法运行。于未获谷歌公司认证的Android设备上,诸如谷歌地图之类的谷歌应用无法运行。即便用户能在手机上安装谷歌应用,运行时也会出现“闪退”状况,或者手机会提示“已停止运行”,从而致使用户无法继续使用。
3、若移动设备厂商欲在设备中搭载谷歌的某类应用,例如Google地图,就必须获取Google针对其设备的GMS认证。
ARCore是谷歌推出的增强现实体验构建平台。它借助各类不同的API,让手机得以感知所处环境、理解现实世界,并与信息进行互动。部分API可在Android和iOS系统中使用,以此实现共享AR体验。
ARCore通过三个主要功能,把虚拟内容与借助手机摄像头所看到的现实世界进行整合:
1. 通过动作跟踪,手机能够知晓并追踪自身相对于世界的位置。
2、依靠环境理解功能,手机能够探测各类表面(像地面、咖啡桌或者墙壁等水平、垂直以及倾斜的表面)的尺寸与位置。
3、通过光估测功能,手机能够对当前环境的光照条件进行估测。
版本v1.47.243160293
修正了部分细微错误,并加以优化。安装或更新至最新版本,即可体验!