找回密码
 立即注册

AR.js 初探

| 2022-3-28 17:22 阅读 3440 评论 20

写之前说几句,以下示例和参考都是github上的开源作品,小编只是分享在利用进程中的踩坑和开辟心得。本文适用于小白,由于例子中能够需要利用到shell号令,小编的电脑操纵系统是windows 7,假如是mac请自行转换为对应的号令行。

AR技术(增强现实技术Augmented Reality,简称 AR),AR技术在Native中已经兴起了,而且市场上有很多成功的APP,可是对于JavaScript怎样来玩转AR呢?下面我来简单的给大师演示两个分歧版本,分歧场景的AR小例子。

1.首先需要先到github上搜索ar.js,以下图,有2.8K star的就是了。



目录结构以下,大师可以download zip,大概git clone下来



我们的例子首要在这个开源库上变动,它的一级目录,aframe data three.js webvr-polyfill,一看就很清楚了,明天我们刀刀见血,只看three.js部分,固然也要依靠于data目录里的数据

事前预备,为了今后的灵活扩大,倡议大师下载一份最新的three.js源码,里面有完整的例子和源码可以鉴戒。

项目download下来今后,需要摆设到web办事器上,然后运转一下里面的例子,下面我以dev.html举例。目录结构以下:


这个页面比力简洁,不到300行的代码,我们需要关注两块内容,便可以完成对这个页面例子的修改。


这几行代码什么意义呢,就是一个婚配的法则,婚配的文件是data目录中的Market标识,说白了就是用让摄像头识别这个标志,官方示例给的标志是patt.hiro,这个标志的来历图片对应着data目录中的images/hiro.png 这张图,怎样用这张图来天生patt.hiro这个标志呢,这时我们需要利用一个SDK工具,细小轻量级的,大师别担忧是很重的安装包。这个工具叫artoolkit,就是AR工具箱,进入官网今后点download下载,我挑选的是这个



安装完成今后,进入到D:\Program Files (x86)\ARToolKit5\bin 目录下,接下来我们就要自界说一个标志了,这里的标志是传统的长方形标志,第一代market,稍后会增加自然图片的market,这里第一代market我是用div画的,具体的结果以下:



最外层的边框 最好为黑红色,这个是官方的文档上倡议的 参考链接market,然后呢把这个结果截图保存到我们适才下载的SDK D:\Program Files (x86)\ARToolKit5\bin\image下,没有image目录就新建一个,用cmd到D:\Program Files (x86)\ARToolKit5\bin目录,运转mk_patt.exe



会弹出相机的设置选项,默许简直定就行,然后相机启动今后,把我们适才天生的图片,瞄准相机然后相机识别今后会出现红绿色边框线,而且出现左上角识此外笔墨,这时请留意笔墨的偏向能否正确。



然后点击鼠标左键,回到号令行,输入文件称号patt.td,然后再当前的Bin目录下找到该文件

回到AR.js-master项目中,翻开data/multi/目录把刚天生的标识文件放进去,接下往返到three.js/examples/dev.html中,在chrome中翻开该页面,这里有个坑,假如是外网想拜候摄像机,必须走https协议,下面是我web办事的url地址:
https://127.0.0.1:18080/AR.js-master/three.js/examples/dev.html
结果以下:



这里声明必须利用两台装备,我的电脑翻开我开辟的网页,手机上保存的是我们适才天生的market!也可以利用两台手机,最好是比力新的android机械,支持webrtc的装备

接下来假如例子运转成功今后,大师会发现我的3D模子和官方的例子并纷歧致,模子怎样替换呢,这就触及到前面我说的第二处留意的地方,替换模子,并不需要改大量的源码,只需要正文掉一小部分就行。



我正文掉的部分是官方的模子运转的代码。上面部分则是three.js中的源码,我这是在红框的地方变动一下模子的定位。我这个模子大师可以间接参考three.js源码中three.js-r82\examples\webgl_loader_collada.html 这个html文件,可以间接运转的例子,将以下代码替换掉dev.html中我正文的部分即可,具体请参考截图,并不是完全替换

var loader = new THREE.ColladaLoader();

loader.options.convertUpAxis = true;
loader.load( './models/collada/monster/monster.dae', function ( collada ) {
dae = collada.scene;
dae.traverse( function ( child ) {
if ( child instanceof THREE.SkinnedMesh ) {
var animation = new THREE.Animation( child, child.geometry.animation );
animation.play();
}
});
dae.scale.x = dae.scale.y = dae.scale.z = 0.002;
dae.updateMatrix();
init();
animate();
});

还需要引入依靠的js文件,只需要把这几个文件增加到AR.js-master项目中即可,three.js已经有了,余下的拷曩昔就行。


最初一个自界说标识的ar h5小法式就天生了,大师可以替换自己想用的3D模子,也可以条形码天生market,也可以将标识打印到A4纸上,用手机翻开url掉出拍照机,对着该market一扫,就出现了增强现实的模子,很赞吧!


接下来说说自然图片的标识怎样天生:

先利用SDK工具进入到D:\Program Files (x86)\ARToolKit5\bin目录,我在这新建一个image文件夹,里面拷了一张.jpg的图片,然后用号令行翻开这级目录:



间接enter 利用默许值,到这一步需要输入分辨率


默许是220,然后再输入一个区间,依照提醒输入6和220


然后就会收集图片的坐标点


收集完成今后会天生以下文件


我们将天生的NTF文件拷入到AR.js-master项目中data/dataNTF中,我这里新建了一个目录叫dayan的文件夹,并将文件粘贴进去,标识天生今后需要做测试了,怎样测试呢,找到如图的nft_threejs.html,这是官方用来测试自然图片的demo.



找到加载标识的地方,这里需要替换一下途径,官方的途径在web办事上会有题目





这里需要正文一下这个function回调里的代码,


替换成以下代码:

var markerRoot = arController.createThreeNFTMarker(markerId);
var loader = new THREE.ColladaLoader();
loader.options.convertUpAxis = true;
loader.load(location_path+ 'three.js/examples/models/dae/monster.dae', function (collada) {
dae = collada.scene;
dae.traverse( function (child) {
if (child instanceof THREE.SkinnedMesh) {
var animation = new THREE.Animation( child, child.geometry.animation );
animation.play();
}
});
dae.position.z = 40;
dae.position.x = 80;
dae.position.y = 80;
dae.rotation.set( 0,Math.PI/2,Math.PI/2);
dae.updateMatrix();
markerRoot.add( dae );
arScene.scene.add(markerRoot);

});


最初代码以下图,


然后我们来跑一下我们的自然图片例子。结果以下


假如大师需要调剂模子的位置和角度,请变动position和rotation的值,触及到一定的数学道理,不会的自己调调找感受。





最初把我建造的market图片贴一下




参考文档:
Creating and Training Traditional Template Square Markers
Training ARToolKit Natural Feature Tracking (NFT) to Recognize and Track an Image
NFT Utilities for ARToolKit

demo list:

测试AR例子
自然图片识别例子

github源码:
dragonHu/ar_test_demo

都是国外的网站,翻开能够比力慢,然后大师阅读英文文档费劲的,可以利用google翻译 翻译一下,我这只是在AR.js上初步研讨了一下,并没有深入,希望大师多提定见交换,我也实现了播放视频的例子,大师可以参考demo列表中的例子,我就不贴代码了。为了精准的展现例子,请大师把摄像头瞄准Market

今朝H5 AR还是有很多壁垒和坑的,文档也相对较少,触及的面比力多,装备性能也是题目,可是对于新技术的摸索还是很风趣的,希望我这篇文章能帮到一些开辟职员。

  • 游客 2022-3-28 17:41
    大神  微信浏览器能支持吗
  • 游客 2022-3-28 17:39
    有github链接啊
  • 游客 2022-3-28 17:38
    而且他最新项目的源码也和你的不一样,可以发一份你这个的源码给我吗?
  • 游客 2022-3-28 17:37
    所以你的那个模式就是加了那些依赖就出来了吗?我下载的源码里没有你引入的那些js文件啊。。
  • 游客 2022-3-28 17:36
    three.js开源的模型,你自己选一个模型,把相关的依赖加上就行
  • 游客 2022-3-28 17:35
    请问模型文件在哪呀?是js写的吗?

查看全部评论>>

文章点评
2022-03-27 18:08
互联网 移动互联网时代的管理模式:社交化
来源:tita.com专业的OKR管理与教练认证平台近现代的社会发展经历过这样三个阶段:工 <详情>
2022-03-27 18:21
互联网 移动互联网出海8年,我们到底对海外环境了解多少?
始自 2010 年的中国移动互联网的出海浪潮,几年时间里经过探索、爆发、迭代转型后,目 <详情>
2022-03-27 19:26
互联网 1.2 量子计算与量子电路
介绍完计算的基本单位qubit后,我们可以进行量子计算了。在经典计算机中,我们使用电 <详情>
2022-03-28 12:32
互联网 五年过去了 我的VR设备为什么还在吃灰
2018年,刚刚走上工作岗位的我为了心动已久的《节奏光剑》购入了PSVR。彼时的囊中羞涩 <详情>
2022-03-28 13:17
互联网 VR设备终于出了第一个爆款!2022将是关键一年
2020年以来,随着VR软硬件设备的迭代升级,硬件成本的下降以及体验感的提升,加上“元 <详情>
2022-03-28 15:26
互联网 量子计算重大突破:科学家实现512个量子位的中性原子体系
澎湃新闻记者 王蕙蓉近日,科学家在中性原子量子计算领域取得重大突破,首次实现具有5 <详情>
2022-03-28 17:22
互联网 AR.js 初探
写之前说几句,以下示例和参考都是github上的开源作品,小编只是分享在使用过程中的踩 <详情>
2022-03-28 17:56
互联网 三分钟了解NB-IoT物联网技术
今天我们来一起吹吹NB!其实,通信圈里的小伙伴已经猜到了,我所说的NB,就是它:在具 <详情>
2022-03-28 18:24
互联网 【2022.3.9】VR(虚拟现实)科普文/眼镜/电影/游戏/资源/元 ...
(一)VR设备从今年的情况来VR渐渐从寒冬苏醒过来,最为明显的信号就是各大厂商纷纷推 <详情>
2022-03-28 18:36
互联网 纯流量卡(物联网卡)经验科普贴
本人从事物联网行业多年,并且拥有自己的工作室,也见证了物联网卡的起起伏伏,在这里 <详情>
2022-03-29 08:49
互联网 五分钟带你了解物联网(IoT)及其未来应用方向
来源:物联网智库 导 读 未来的IoT应用,将在不同行业中,和不同领域中,从简单的状态 <详情>
2022-03-29 10:13
互联网 从大数据到数据库
这个专栏虽然是 TiDB AP 组的,但基本不代表官方态度(这样可以写的随意一点)。从上 <详情>
2022-03-29 10:19
互联网 大数据方向毕业设计如何做,分享我的思路
前言最近有很多人问我,大数据专业有什么好的毕设项目,我就简单的回复了一下。也有直 <详情>
2022-03-29 10:19
互联网 大数据毕业设计
1 开题指导1.1 起因近期开题的同学越来越多,很多同学不知道怎么选题,不知道老师分配 <详情>
2022-03-29 10:49
互联网 2021最全大数据学习路线(建议收藏)
个人简介:非科班双一流硕士,CAE仿真方向转行大数据,现杭州某大厂大数据工程师! 我 <详情>
2022-03-29 15:45
互联网 第一次有人把5G讲的这么简单明了
原作者:小枣君原出处:鲜枣课堂原链接:有史以来最强的5G入门科普!关于5G通信,常见 <详情>
2022-03-29 17:24
互联网 聊一聊 VR 虚拟现实(十一):VR 未来20年发展趋势预测
要想做好眼前的事,首先要知道它未来会是什么样子?本篇文章里,我们就讨论下VR的未来 <详情>
2022-03-29 17:25
互联网 2022年VR眼镜这么选?100-5000元内的VR眼镜推荐 ...
哈喽!大家好,我是热爱分享的 @雪雪雪雪碧 呀,这篇文章主要给大家分享家用VR眼镜的 <详情>
2022-03-29 17:26
互联网 个人向VR硬件推荐/选购指南(更新到2021)
联动游戏推荐贴:联动VR设置贴:VR组织QQ群推荐:(较为婆罗门S1论坛VR群,水分少,有 <详情>
2022-03-29 17:42
互联网 2022年VR眼镜评测,Oculus、Pico、Nolo、HTC品牌推荐 ...
【全文约4000字,精读10分钟】全文精华总结,不想看长内容的,直接看结论: 【VR眼镜 <详情>

热门文章