Vuforia AR的认识(三)

ImageTarget替换Target,以及遇到的坑html

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

仍是一步一步来操做,作记录。数据库

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

二、上传照片,生成数据库spa

打开官网,先登陆,Develop->Target Manager->Add Database建立一个数据库,命名没有要求,通常便可。3d

选择建立的数据库,Add Target。添加target,在弹出窗口中选择Single Image,选择本身想要的文件上传。调试

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

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

这里有第三个坑,评分htm

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

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

三、下载数据库

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

四、添加资源,修改代码

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()的名字是添加图片时写的名字。不是图片本来的名字

五、运行并观察

如今就能够在本身替换的图片上看到茶壶了,加强现实的第一步完成!

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

相关文章
相关标签/搜索