使用cloud anchors来创建多玩家或协作的AR体验,Android和iOS用户可以共享。
- Cloud anchors是如何工作的
Cloud anchors让您可以在相同的环境中为多个设备提供ARKit和/或ARCore锚。
在相同环境下的用户可以在他们的设备上看到的AR场景中添加Cloud anchors。
你的应用程序可以将3D对象附加到Cloud anchors上,让用户可以同时看到和与对象互动。
为了使这些共享的AR体验成为可能,ARCore SDK使用Google服务器来托管和解析anchors。
- 托管anchors
在一个给定的物理空间中,托管一个anchors将它映射到一个公共的坐标系统中。
当你托管一个anchors时,ARCore将相关的可视映射数据从用户的环境发送到Google服务器。一旦这些数据被上传,它就会被处理成一个稀疏的点图,类似于一个ARCore point cloud。
- 存储anchors
存储cloud anchors可以让给定物理空间中的多个设备将先前托管的anchors添加到它们的场景中。
一个cloud anchors存储请求向当前帧向服务器发送可视化的特征描述符。服务器试图将视觉特性与稀疏点图相匹配。这让你的应用可以在每个用户的设备上看到的场景中持续地定位存储anchors。
- 数据存储和访问限制
云锚可以在托管后24小时内保存。
在7天之后,在托管锚时将原始的可视映射数据被丢弃。
锚在服务器端与存储的稀疏点映射一起解析。
稀疏点图可以在生成后24小时内用于云锚解析请求。
以前上传的映射数据从未发送到用户的设备上。
不可能确定用户的地理位置,也不可能从稀疏点图重建任何图像或用户的物理环境。
从请求解析锚的请求中,从未存储过可视特征描述符。
- 使用步骤(Android与IOS类似):
首先先要在Google Cloud Platform Console(要翻墙)创建一个项目,进入API和服务,创建凭证
点击库,搜索ARCore Cloud Anchor API点击启用
在项目中添加申请的Cloud Services API Key
运行示例程序
当识别到可视化平面后
①.点击HOST按钮
主机请求被发送到Google Cloud锚服务。主机请求包含表示锚位置相对于其附近的可视特性的数据。一个成功的主机请求在这里建立一个云锚,并给它分配一个云锚ID。
在托管请求成功之后,该应用程序会显示一个房间代码。您可以使用相同的设备或其他设备来使用该代码来访问这个房间以前托管的云锚。
②.点击RESOLVE
输入以前返回的房间代码,以访问这个房间的托管云锚。
一个解析请求被发送到Google Cloud锚服务,如果成功,则返回当前托管在房间中的云锚。样例应用程序使用返回的云锚的转换来呈现附着在它们上的Andy Android对象。
- API分配
下面的最佳实践有助于创建良好的云锚用户体验:
一般情况下:
避免在闪亮的表面上托管或解决云锚。
为了达到最好的效果,避免在没有视觉特征的情况下出现反射面或表面,比如空白、光滑、白色的墙壁。
确保房间里的照明足够了。
为了达到最好的效果,在锚主机和解析请求之间应该保持一致。
在托管云锚之前:
试着从不同的角度看锚。
在锚上移动至少几秒钟。
确保你离锚点不远。
在存储云锚之前:
确保你靠近锚的位置。
如果你离云锚的位置太远,它可能会错误地解决。
如果你的手机摄像头指向一个不同于云锚的位置,那么你的云锚可能会不正确地解决问题。
转载自 https://blog.csdn.net/dengshunhao/article/details/80580769