在摄像头View之上,需要识别具体的标识物,才会有进一步的互动效果。比较适合logo识别玩法、PokemonGo类似识别类的游戏。
使用天猫客户端扫描以下二维码, 找到AR按钮,点击打开摄像头后,点击选择需要识别的图片,启动AR成功后可看到结果

目前是定向接入,找对应业务运营同学提交相关的PRD或者demo流程,通过相关的业务和技术审核以后才能往下进行应用开发。
识别流程:
// API参数说明
var configObject = {
"eventId":"1", // 活动Id,导入Marker后系统分配的。
"shopId":"123", // 店铺Id
"url":"https://xxxx.ews.m.jaeapp.com" //AR窗口上方叠加的H5页面
}
Tida.AR.openMarker(configObject)
// 参数说明
// onMatrixUpdateCallback // 在矩阵发生更新时的回调
var onMatrixUpdateCallback = {
markers:['通过mmarker工具生成那段字符串'],//识别标识物图片的加密信息,手机天猫App场景下需要设置。手机淘宝App下通过设置Eventid来实现。
success: function(data) {
console.log('success:'+JSON.stringify(data));
},
fail: function(data) {
console.log('fail:'+JSON.stringify(data));
},
recognizeSuccess: function(data) {
console.log('updatecallback:'+JSON.stringify(data));
},
recognize: function(data) {
console.log('recognize:'+JSON.stringify(data));
}
};
Tida.AR.startMarkerTrack(onMatrixUpdateCallback);
markers接入的标识物图片的加密信息通过mmarker工具生成,详见marker制作工具
{
"projectionMatrix":"",
// 3D到屏幕显示的投影矩阵,16长度的数字数组字符串,以逗号分隔
"resourceId":"",
//标识物ID,仅在手机淘宝环境下支持。resourceId=s0.bin,resourceId=s1.bin分别代表第一个识别物、第二个识别物,如此递增。
"RT":""
//变换矩阵,16长度的数字数组字符串,以逗号分隔
models: [] // 天猫的识别结果,如果长度大于0,表示识别成功
}
在天猫上:如果你想在识别到目标后使用3D做渲染,识别程序会返回下面几个结果:
{
"viewport": [-105, 0, 851, 1136], // Viewport
"models": [
{
"name": "pinball",
"mvprojection": [ // Model View Projection
2.394426, -0.04623331, -0.1083115, -0.1077713,
0.0528238, 1.809534, -0.05749675, -0.05720999,
-0.2414996, -0.06555773, -0.9975035, -0.9925284,
-187.2699, -213.9585, 399.7688, 407.75
],
"projection": [ //Projection
0, -1.811002, 0, 0,
2.407058, 0, 0, 0,
0.02137727, 0.0334729, -1.005013, -1,
0, 0, -10.02506, 0
],
"modelmatrix": [ //Model
0.02752107, 0.9937948, 0.1077713, 0,
-0.9981321, 0.02143729, 0.05720999, 0,
0.05454468, -0.1091445, 0.9925284, 0,
110.6072, -74.17903, -407.75, 1
]
}
]}
注意,若使用webgl渲染时,需要在页面隐藏时停止webgl渲染,不然会引起客户端crash。相关方法见页面激活状态
Tida.AR.stopMarkerTrack();
当一个活动,需要用到多个识别物图片的时候,这个时候可以需要区分具体是哪个识别物图片。处理方式如下:
手机淘宝:通过onMatrixUpdateCallback方法里的回调结果来区分。"resourceId":"s0.bin","resourceId":"s1.bin"分别代表第一个识别物、第二个识别物,如此递增。
手机天猫:多张图同时生成一份marker