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()的名字是添加圖片時寫的名字。不是圖片本來的名字

五、運行並觀察

如今就能夠在本身替換的圖片上看到茶壺了,加強現實的第一步完成!

還有更多,替換模型,換掉該死的茶壺...

相關文章
相關標籤/搜索