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()的名字是添加图片时写的名字。不是图片本来的名字。
五、运行并观察
如今就能够在本身替换的图片上看到茶壶了,加强现实的第一步完成!
还有更多,替换模型,换掉该死的茶壶...