以下内容由公众号:AIRX社区(国内领先的AI、AR、VR技术学习与交流平台) 发布
AR.js是一个轻量级的增强现实类JavaScript库,支持基于标记和位置的增强现实。开发人员可以使用几行HTML将AR特性和功能引入任何网站。该项目是开源的,在GitHub上拥有近14,000个stars,各种平台的开发人员正在使用它来创建更多新的数字体验。AR.js框架包括跨浏览器兼容性,并且支持WebGL和WebRTC,这意味着它可以在iOS 11以上的Android和iPhone设备上正常工作。通过包装许多不同的AR框架,包括three.js,a-frame和ARToolKit,AR.js使得将AR引入Web应用程序变得更加简单高效。它具有以下优点:
AR.js 2.0版本首次引入了另一种类型的增强现实:基于位置的。所以基于标记的与基于位置到底本质上有什么区别呢?实际上基于标记的就是我们现在市面上常见的扫描识别图出现AR模型效果,不管对于识别图也是有要求限制的,AR.js使用artoolkit,它支持多种类型的标记模式或者条形码,也就是我们做CV开发常用的Maker。如下图所示:
标记检测:使用AR.js的首选方法是通过标记。由于ARCore和ARKit的出现,从技术上讲,它也可以在没有这些功能的情况下运行,但使用标记可以确保你的体验与所有手机兼容。让我们看看AR.js可以使用哪种标记:
1、条形码
条形码标记是标准的ARToolkit标记,由黑白块组成。如下面这个3×3条码标记的示例。它是一个由白色和黑色块组成的3×3阵列,被黑色粗边框包围。这与代码“ 2”相关联
你可以使用这个在线工具生成条形码标记:http://au.gmented.com/app/marker/marker.php
2、Pattern marker
AR.js还提供了使用模式标记的可能性。模式标记是自定义标记,由粗黑边框和内部的自定义图像组成。你必须遵循以下准则:
由于分辨率低,如果您想要使用多个模式标记,请确保它们之间的差异非常大,否则识别时会混淆它们。
在本次案例演示使用的是如下marker:
如果你需要一些帮助来创建标记,建议你使用这个在线工具:
https://jeromeetienne.github.io/AR.js/three.js/examples/marker-training/examples/generator.html
使用A-Frame
如何使用A-frame开发一个AR.js应用程序?如果使用Mozilla的框架a -frame,用AR.js开发非常简单,只需要几行代码。下面我们在上面那个marker上显示一个cube,代码非常简单:
1、Patter markers
你可以在以下链接测试该应用程序:https://skarredghost.com/AR/red.html。你可以打印上面的marker,或者你可以打开电脑屏幕上的图片,用智能手机来扫描它。你会看到一个红色的方框跳出来。
要使用老式的条形码标记,可以使用与上面完全相同的过程。只有两个不同之处:
你可以通过使用浏览器访问https://skarredghost.com/AR/yellow.html页面来测试此应用程序。通常,条形码标记的检测要比图案标记的检测要好,跟踪也要好一些:
使用three.js
A-frame非常适合开发只需要几行代码的AR解决方案。这是因为A-frame是一个高级框架,是在three.js(用于创建3D应用程序的Javascript库)的基础上构建的。
如果你想自定义代码,只需查找以“//HERE”开头的注释,它将指向你可以插入自定义标记的位置。sample的最后一部分用来展示你可以在你的屏幕上看到的令人惊叹的动画。链接地址:
https://skarredghost.com/AR/violet.html
如何使AR体验无缝
如果我们能结合的QR码标记,体验将会更为顺畅,用户应该只打开一个QR-codes-scanning应用程序(或一些新的智能手机的摄像头应用程序),检测二维码的链接,并打开相关的基于AR技术的网页浏览器。该应用程序将解码标记,并立即开始AR体验!
1、把标记放在qr码里面
QR码可以在其中心包含一个标识。如果我们不用标识,而是插入一个标记,最好是条形码标记,考虑到周围二维码带来的混乱是一个更好的选择,我们可以做到这一点。用户将把二维码框起来,然后网页就会追踪嵌入其中的小标记。这个解决方案的优点是,结果是一个干净的二维码,其中包含一个额外的代码。这样做的好处是标记只占据了代码内部的一小部分表面(这不利于跟踪的稳定性),并且你不能再将你的marker添加到二维码中。要创建二维码,我建议你使用QRCODE MONKEY在线工具。你必须执行的步骤是:
2、将QR码放入标记中
我们可以创建自定义标记,那么为什么不能在标记设计中添加QR码?
如上所述,在代码中使用自定义标记。
3、3D模型的最终体验
AIRX团队整理自:
https://skarredghost.com/2019/08/29/how-to-seamless-mobile-ar-js/
关于更多WebAR开发文章,可以查看:
WebAR开发指南(1)---使用AR.js实现第一个WebAR demo
万字干货介绍WebAR的实现与应用
【AR优秀开源项目】使用ARKit实现WebAR效果
8th Wall WebAR案例视频合集
上一篇:AR VR MR 全息投影