js指定位置加入图片_使用AR.js第3版实现图片跟踪和基于位置AR

前言

AR.js开源项目的维护由个人改为组织维护,项目升级到第3版,功能支持图像跟踪、基于位置、有标记跟踪等,并且有了官方文档。

3fb2ede4930f383466663af4963c646f.png

本文介绍AR.js 3和A-Frame集成,并具有的图像跟踪和基于位置的新功能。

图像跟踪入门

新的AR.js跟踪可以拍摄任意图像或绘画(不仅是有标记团图案)来固定和显示3D内容。

您只需要具有大量细节的高分辨率图像。图像的复杂度越高,跟踪越好。

对于本教程,我们将使用一张图像。

创建图像描述符

图像描述符(Image Descriptors):一组描述图像的文件,跟踪算法需要这些文件。

我们将通过网络在线使用NFT标记创建器(如果愿意,也可以在本地以node.js脚本的形式获得)。上传您的图片,然后单击“生成”以创建图像描述符。处理完图像后,将自动下载三个文件。将以下代码片段复制到新的HTML文件中,并将其托管在服务器上。

 
<a-scene
vr-mode-ui="enabled: false;"
renderer="logarithmicDepthBuffer: true;"
embedded
arjs="trackingMethod: best; sourceType: webcam;debugUIEnabled: false;">
<a-nft
type="nft"
url=""
smooth="true"
smoothCount="10"
smoothTolerance=".01"
smoothThreshold="5">
<a-entity
gltf-model="scene.gltf"
scale="5 5 5"
position="100 100 0"
>
a-entity>
a-nft>
<a-entity camera>a-entity>
a-scene>

指向包含您之前生成和下载的图像描述符的路径。这些文件将具有通用名称。删除文件扩展名(例如,使用“ dinosaur.fset”,“ dinosaur.iset”等,您添加的路径应以“ dinosaur”结尾)。

在本地或远程服务器部署示例,导航到设备上的URL。在加载显示消失后,您应该会看到T-Rex模型。

您可以将以上模型替换为任何其他资源:2D视频,图像,音频文件。

基于位置的AR

基于位置的跟踪使用现实世界坐标将AR内容放置在上下文中。用户可以自由移动(在室外以获得更好的精度),并且与他们的位置相关联的内容将被缩放和放置(例如:内容将根据与用户的距离而变大或变小)。现在使用AR.js和A-Frame,可以很轻松地构建各种体验,例如城市和博物馆之旅、餐厅指南、寻宝、生物学或历史学习游戏等,或者将虚拟艺术品放置在任何现实世界中。

下面的示例演示如何将文本放置在现实世界中的固定位置上。当您四处移动时,文本将保留在原位。内容将锚定到您当前的位置。尝试之前,请确保已在设备上启用GPS权限。

<a-scene
vr-mode-ui="enabled: false"
embedded
arjs="sourceType: webcam; debugUIEnabled: false;"
>
<a-text
value="This content will always face you."
look-at="[gps-camera]"
scale="50 50 50"
gps-entity-place="latitude: ; longitude: ;"
>a-text>
<a-camera gps-camera rotation-reader> a-camera>
a-scene>

一些注意事项:

  • 将和替换为您的GPS坐标。有几种在线服务可让您免费获取这些数据。

  • 根据您指定的坐标位置的距离来改变scale属性。如果看不到文本,请尝试按比例放大或选择距离更近的位置。

  • 我们使用了自定义的aframe组件look-at,使内容始终朝着用户相机看。这是基本的要求,特别是对于作为文本的2D内容而言。

在启用GPS数据的设备上运行示例,您应该能够看到固定的文本。它的位置应符合您添加的GPS坐标的实际位置。

利用aframe,您可以发挥创造力并将其替换为您喜欢的任何内容,从而可以快速显示3D模型,视频,图像,所有a-entity 会按预期进行跟踪。


版权声明:本文为weixin_39702400原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。