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 (这段文本本身表意明确,若要修改可适当调整表述,比如)该链接为: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)及更高版本系统的多种符合条件的安卓手机上使用。 在开发者预览版阶段,ARCore支持以下设备(如下图所示)。
后来增加了对其他设备的支持(如下图)
1. Google Play服务能够优化您的应用使用感受。它提升了离线搜索的速度,带来更具沉浸感的地图,还优化了游戏体验。
2、若您卸载此软件,应用或许无法运行。在未经谷歌公司认证的Android设备上,诸如谷歌地图之类的谷歌应用无法运行。即便用户能在手机上安装谷歌应用,运行时也会出现“闪退”情况,或者手机会提示“已停止运行”,致使无法继续使用。
3、若移动设备厂商打算在设备中搭载谷歌的某类应用,例如Google地图,就必须取得Google针对其设备的GMS认证。
ARCore是谷歌推出的增强现实体验构建平台。它借助各类API,使手机得以感知所处环境、认知现实世界,并与信息展开互动。部分API可在Android和iOS系统中运用,以此达成共享AR体验。
ARCore运用三个主要功能,把虚拟内容与借助手机摄像头所看到的现实世界进行整合:
1. 通过动作跟踪技术,手机能够知晓并追踪自身相对于外界的位置。
2、通过环境理解功能,手机能够探测各类表面(像地面、咖啡桌或者墙壁等水平、垂直以及倾斜表面)的尺寸与位置。
3、通过光估测功能,手机能够对当前环境的光照条件进行估测。
版本 v1.47.243160293
修正了部分细微错误并加以优化。安装或更新至最新版本便能查看!