您的位置:首页 > 移动开发 > Android开发

artoolkit学习之ARSimpleNativeCarsProj的一点研究心得

2017-06-02 16:04 393 查看
最近在研究AR,用的是使用很广泛的artoolkit,其中在AndroidStudioProjects有一个demo,叫ARSimpleNativeCarsProj,主要是修改代码来识别自己的图片,加载自己的模型。

我将其分为3步:

第一步:将自己的识别图制作成xxx.patt文件,制作方法自行百度,推荐一个网站:点击打开链接

第二步:将自己的模型放到工程目录下的assets\Data下

第三步:修改代码

首先,可以根据需要修改模型的数量

#define NUM_MODELS 3 //猜测是模型数量其次,添加或修改模型的路径
const char *model0file = "Data/models/Porsche_911_GT3.obj";//模型文件
const char *model1file = "Data/models/Ferrari_Modena_Spider.obj";
const char *model2file = "Data/models/Milaosu.obj";//我自己的模型然后,编写代码或修改代码,我是在原有基础上添加了一个模型,所以我添加了代码
models[2].
patternID=arwAddMarker("single;Data/test.patt;80");//我的识别图文件
arwSetMarkerOptionBool(models[2]
.patternID,ARW_MARKER_OPTION_SQUARE_USE_CONT_POSE_ESTIMATION,false);
arwSetMarkerOptionBool(models[2]
.patternID,ARW_MARKER_OPTION_FILTERED,true);

models[2].
obj=glmReadOBJ2(model2file,0,0);// context 0, don't read textures yet.
if(!models[2].obj){
LOGE("Error loading model from file '%s'.",model2file);
exit(-1);
}
glmScale(models[2]
.obj,0.035f);
//glmRotate(models[2].obj, 3.14159f / 2.0f, 1.0f, 0.0f, 0.0f);
glmCreateArrays(models[2]
.obj,GLM_SMOOTH | GLM_MATERIAL | GLM_TEXTURE);
models[2].
visible=false;

以上代码是在ARWrapperNativeCarsExample.cpp中。
以上就是我的研究成果,有不妥之处,还望指正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android AR artoolkit