Vuforia AR的认识(三)

ImageTarget替换Target,以及遇到的坑

我自己研究的时候从替换3D模型开始,因为没有基础导致花了一整天时间没有成功,后来就先易后难,从替换Target图片开始,但是也因为网上的很多教程、博文都很简单或者干脆互相抄袭,很多坑没有提示,也导致浪费了三个小时,一个坑一个小时的代价了。

还是一步一步来操作,做记录。

1、选择一个图片,画面内容丰富比较好,选择了公司大厅的一张照片,见过的同学说明是我的同事哦。

2、上传照片,生成数据库

打开官网,先登录,Develop->Target Manager->Add Database创建一个数据库,命名没有要求,一般即可。

选择创建的数据库,Add Target。添加target,在弹出窗口中选择Single Image,选择自己想要的文件上传。

这里遇到一个坑Width:
Width:上面写着的Vuforia uses meters as the default unit scale.看清楚,宽度单位是,我开始写的是图片的像素宽高,结果死活不成功。

第二个坑Name:
(网站已经大写了,我没注意也是我的错),此处的Name字段将会在修改代码时使用到,所以不要用图片原名(截图XXX之类的),直接写一个合适的名字。

这里有第三个坑,评分

上传成功之后,网站会执行渲染计算什么的,看到Rating评分,图片内容不够丰富,评分低了也是不会成功的!

据说至少三分才行,我看五分最好,无非是找个好图。

3、下载数据库

勾选之后,点击Download Database,选择Android Studio项(Eclipse是一样的),里面会有.xml和.dat文件。

4、添加资源,修改代码

a 将.xml和.dat文件放入assets下
b 修改代码
ImageTargets.java 修改

将自己数据库的名字添加到 onCreate()方法  mDatasetStrings 赋值中。 将原来的第一个注释掉,补上自己的。   

mDatasetStrings.add("snow.xml");
mDatasetStrings.add("StonesAndChips.xml");

将自己的数据库添加到侧滑菜单中。将原来的第一个注释掉,补上自己的。

group.addRadioItem("snow", mStartDatasetsIndex, true);
group.addRadioItem("Stones & Chips", mStartDatasetsIndex + 1, true);

 ImageTargetRenderer.java 修改

int textureIndex = trackable.getName().equalsIgnoreCase("snow") ? 0 : 1;
// int textureIndex = trackable.getName().equalsIgnoreCase("snow") ? 0 : 1;
textureIndex = trackable.getName().equalsIgnoreCase("stone") ? 2 : textureIndex;

调试时可以看到trackable.getName()的名字是添加图片时写的名字。不是图片原本的名字

5、运行并观察

现在就可以在自己替换的图片上看到茶壶了,增强现实的第一步完成!

还有更多,替换模型,换掉该死的茶壶...

转载于:https://www.cnblogs.com/LiuSiyuan/p/6279236.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值