微信小程序AR开源项目2022年9月份更新
admin
2023-09-06 13:07:56
0

1.增加了生产环境的小程序

生产环境的小程序使用的是笔者全部的AR开源项目。

1.1 AR栏目

平面检测:检测现实环境的水平面。例如桌面、地面等。

单样本检测:用一张图片,检测现实环境中物体表面的图案。例如标志性建筑、商品包装等。

图像跟踪:用一张图片,检测现实环境中的平面图案。例如广告、杂志封面等。

颜色跟踪:检测现实环境中物体表面的颜色。例如分类垃圾桶的黑色、红色、绿色、蓝色等。

测量距离:计算现实环境中物体的长度,进一步计算得到面积、体积。例如是否超过快递的体积限制、绘制房屋平面图等。

运动跟踪:手机能感知到人们在现实环境中的位置。例如三维重建、无人驾驶等。

空间音频:音响的声音会根据人们与音响的距离远近变化。例如AirPods空间音频的沉浸式环绕声体验。

环境理解:检测现实环境中水平面、垂直面、倾斜表面的位置和大小。目前,小程序Android版不支持垂直面,iOS和Android版都不支持倾斜表面。



1.2 AI栏目

面部跟踪:检测人脸的不同区域,可以使用这些区域叠加资源。例如美容、试戴配件等。人脸识别需要特征点的描述因子,而小程序没有提供,所以无法实现人脸解锁和实人验证等。

目标分类:检测现实环境中物体的种类。例如识别花草、动物等。

手部跟踪:检测手部的不同区域,可以在这些区域叠加资源和判断人们的手势。例如试戴配件、翻译手语等。



1.3 3D栏目

3D查看器:呈现GLTF和GLB格式的模型。GLB格式如果包含贴图,则先转为GLTF格式,才可在小程序中正常显示。

全景图片:呈现图像尺寸2:1的全景照片。图像大小不能超过2MB、图像宽高不能超过2048像素,否则在小程序中不显示。Android版小程序需要图像宽高是2的幂,例如512像素、1024像素、2048像素。

指南针:当手机旋转时,地图方向也会旋转,“目的地”相对于用户位置不动,用户能分辨方向。还包含寻找周边的餐厅、商场、公园、地铁站、药店等。



1.4 WebAssembly栏目

Go语言:小程序上的CPU计算密集型任务。

OpenCV:小程序上的计算机视觉。



1.5 小程序地址

小程序名称:增强现实首页

小程序链接:#小程序://增强现实/NNnpxS1MpEJXxrf

2、V1版小程序AR项目更新

2.1 新增功能

“单样本检测”功能。

详细了解:微信小程序AR新增图像跟踪和one-shot目标检测

2.2 更新功能

webglBusiness.js升级到官方最新版,也保留了Android深度冲突现象的修复代码。

官方版

gl_Position = vec4(p, 1);

gl.disable(gl.DEPTH_TEST)

笔者版

gl_Position = vec4(p.x, p.y, -1, 1);

// gl.disable(gl.DEPTH_TEST)

2.3 修复问题

Q1: 在开发者工具预览时,提示超过2MB大小的问题。

项目包含了演示的3D模型,这些模型从网络下载,不占用小程序大小。之所以包含在项目中,是方便开发者将3D模型部署在自己的服务器上。

在文件project.config.json中,配置不打包的目录。

"packOptions": {
"ignore": [
{
"type": "folder",
"value": "assets"
}
]
}

Q2: 小程序AR的Three.PlaneGeometry、Three.BoxGeometry等的纹理贴图变为黑色,同时画面镜像和闪烁。

这个现象包含2个问题:

1、添加了简单模型的纹理贴图,画面出现镜像和闪烁。

解决方法:通过2.2节更新webglBusiness.js。

2、GLTF模型的纹理贴图能显示,而简单模型的纹理贴图显示为黑色。

临时解决方法:用3D编辑器,将简单模型和GLTF模型组合在一起。组合后,简单模型的纹理贴图就正常显示了。

相关内容