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、運行並觀察

現在就可以在自己替換的圖片上看到茶壺了,增強現實的第一步完成!

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM