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

Vuforia在iOS上的再封装

2016-07-15 16:39 681 查看
之前用Vuforia做了一些Demo,主要是用Unity实现的。现在有需求要将Vuforia集成到已有的iOS客户端中。事实上Vuforia提供了iOS上的SDK,不过要让客户端同事去集成并实现需求的功能还是有些麻烦的,于是我在官方提供的iOS SDK上又封装了一次,加入了先前做的模型导入和交互的相关工作(可以参考Application3D),形成了更加简单的可配置的静态库。

主要功能

方便地实现基于Vuforia的ImageTarget识别;

支持Obj格式模型导入;

模型的简单交互(旋转,缩放,平移);

支持模型和识别datasets的配置;

使用步骤

下载或克隆Vuforia-iOS-Lib

配置依赖库

有两种方式:

去Vuforia官方下载iOS SDK,并解压缩到external-deps文件夹下;

运行ARDemo工程的createARLib target

在项目文件夹下会出现新文件夹
output
,里面包含新的静态库资源
主要包含:

ARResources.bundle : 包含绘制用的glsl文件;

include : 包含头文件;

libAR.a : 新封装的静态库;



将以上三个资源添加到工程;

配置相关参数初始化
ARViewController

配置:

{
AR_CONFIG_INIT_FLAG : <Vuforia License Key>,
AR_CONFIG_DATA_SETS : [<数据集>...],
AR_CONFIG_MODEL : [<模型>...]
}
数据集:
{
AR_CONFIG_DATASET_NAME : <数据集名称>,
AR_CONFIG_DATASET_PATH : <数据集所在路径>
}

模型:
{
AR_CONFIG_TARGET_NAME : <识别体名称>,
AR_CONFIG_MODEL_PATH : <模型路径>
}

通过设置
ARViewController.activeDataSetName
可以激活载入的数据集。

AppDelegate.m
applicationDidEnterBackground
中释放GL资源

- (void)applicationDidEnterBackground:(UIApplication *)application {
if (self.glResourceHandler) {
// Delete OpenGL resources (e.g. framebuffer) of the SampleApp AR View
[self.glResourceHandler freeOpenGLESResources];
[self.glResourceHandler finishOpenGLESCommands];
}
}

具体的配置可以参考TestARLib工程

更新

后台导入模型;

增加退出protocol;

支持同时识别多张目标;

增加光照渲染模型;

效果图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iOS Vuforia AR 模型