文章目錄
  1. 1. 主要功能
  2. 2. 使用步骤
  3. 3. 效果图

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

主要功能

  1. 方便地实现基于Vuforia的ImageTarget识别;
  2. 支持Obj格式模型导入;
  3. 模型的简单交互(旋转,缩放,平移);
  4. 支持模型和识别datasets的配置;

使用步骤

  1. 下载或克隆Vuforia-iOS-Lib
  2. 配置依赖库
    • 去Vuforia官方下载iOS SDK,并解压缩到external-deps文件夹下;
  3. 运行ARDemo工程的createARLib target
    在项目文件夹下会出现新文件夹output,里面包含新的静态库资源
    主要包含:
    • ARResources.bundle : 包含绘制用的glsl文件;
    • include : 包含头文件;
    • libAR.a : 新封装的静态库;

生成的资源

  1. 将以上三个资源添加到工程;
  2. 配置相关参数初始化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可以激活载入的数据集。

  1. AppDelegate.mapplicationDidEnterBackground中释放GL资源
1
- (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工程

效果图

效果图

文章目錄
  1. 1. 主要功能
  2. 2. 使用步骤
  3. 3. 效果图