当前位置: 首页 > Web前端 > HTML5

WebAR开发指南(一)---使用AR.js实现第一个WebARdemo

时间:2023-04-05 21:37:19 HTML5

关于AR.jsAR.js是一个轻量级的增强现实JavaScript库,支持基于标记和位置的增强现实。开发人员可以使用几行HTML将AR特性和功能带到任何网站。该项目是开源的,在GitHub上拥有近14000颗星,各平台的开发者正在使用它来创造更多新的数字体验。AR.js框架包括跨浏览器兼容性,并支持WebGL和WebRTC,这意味着它可以在iOS11及更高版本的Android和iPhone设备上运行。通过包装许多不同的AR框架,包括three.js、a-frame和ARToolKit,AR.js可以更轻松、更高效地将AR引入Web应用程序。它具有以下优点:跨浏览器兼容性即使在旧设备上也能达到60fps的高性能基于Web无需安装可以在不到10行HTML中完成通用硬件创建项目假设您已经设置了(本地或其他)开发环境并使用SSL证书对其进行保护。为什么要使用SSL?Chrome想要请求摄像头访问权限的站点必须全部严格通过https传送。我们可以只用8行HTML编写一个AR.js演示。在您的开发环境中将以上代码编辑到index.html文件中,并在您选择的兼容浏览器中打开它,您将收到一个访问摄像头的请求,点击允许。将相机对准识别图(下图),如果一切顺利,您应该会在标记顶部看到一个半透明的白色立方体。要从视频显示中删除调试框,只需添加以下代码:使用自定义标记第1步:识别您的标记图像。为获得最佳效果,这应该是一个简单、高对比度的PNG图像,预先裁剪为至少512x512的方形尺寸。这也必须是旋转不对称的,这意味着无论旋转到什么程度,它看起来总是独一无二的。下面是一些很好的标记图像示例:第2步:将图像转换为.patt文件和AR.js标记。使用此标记训练器(https://jeromeetienne.github....),上传要用作标记的图像。下载标记:AR.js使用.patt文件来识别标记并显示3D内容。下载图像:具有适当黑色边框的实际.png图像,用作物理标记。第3步:将.patt文件添加到您的网站。只要应用程序可以访问它,例如/img/patterns/my-marker.patt第4步:将标记添加到AR.js元素。使用a-frame方法,您需要做的就是添加一个a-marker元素,其类型属性为“pattern”,并将模式文件的相对路径作为“url”属性。使用这种方法,我们还需要包括一个实体相机,以便虚拟相机包含在正在渲染的3D环境中。第五步:最后,添加要显示的3D模型。为此,我们需要添加一个模型,该模型将在找到该标记时显示。幸运的是,框架包含很多原始几何体,我们可以使用一些简单的元素名称轻松插入它们:对于这个例子,我将在标记上方添加一个红色球体。测试结果如下:减小黑色标记边框的大小个人认为默认的边框粗细很难在标记上看到。因此,如果您使用的是最新版本的框架,您可以根据自己的喜好调整边框大小!哪个看起来更好?左:0.5,右:0.8您可以通过访问此网站调整大小:https://jeromeetienne.github....一旦您确定了您想要的图案比例,您可以生成并保存标记图案和标记图像以用于应用程序,只需要一些小的调整就可以绑定它。代码如下:使用您自己的3D模型当然,立方体、球体、平面和圆柱体很酷,但大多数时候,您需要在要创建的增强现实场景中使用和显示自定义3D模型。最简单的方法是确保模型是obj或glTF格式。对于obj模型:在我们的a-entity标签中,我们将使用obj-model道具,它要求您指定.obj模型文件和随附的.mtl材质文件的路径。最终结果应该是这样的:为什么我们有一个事件监听器用于glTF模型创建事件监听器?我可以给你举一个真实的例子:只要标记在用户设备上处于活动状态,客户端就想显示一个简单的内容块。只要当前没有活动标记,内容就会消失。为实现这一点,我们需要添加一个事件侦听器,该侦听器将在找到/丢失标签时触发,然后将其挂接到主站点的javascript包中,并在该事件触发内容时显示/隐藏。要实现事件监听器,只需注册一个aframe组件,然后为markerFound和markerLost设置事件监听器。在各自的回调函数中,写任何你想要在标记找到或丢失时触发的js内容,比如下面的代码示例:关注公众号:AIRX社区(国内领先的AI、AR、VR技术学习和平台)