【问题标题】:iOS ARToolKit Xcode ImplementationiOS ARToolKit Xcode 实现
【发布时间】:2016-09-05 15:34:34
【问题描述】:

我正在尝试将 ARToolKit 实现到一个 Objective-c iOS 应用程序中。

我已经下载了ARToolKit SDK,我看到了以下内容。 ARToolKit5 目录适用于 Mac OSX,所以我关闭了这个目录。 ARToolKit5iOS 是我尝试导入 Xcode 项目的目录。

到目前为止我所尝试的...

在 share > 打包中,我运行了以下命令,这似乎运行正确,没有任何错误。

bash ARToolKit5iOS-bin.sh

然后我尝试将 lib 和包含目录导入到我的 Xcode 项目中。

问题

这是我项目的内容> ViewController.m

#import "ViewController.h"
#import <AR/ar.h>

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

如您在以下屏幕截图中所见,尝试导入 AR 工具包时发生错误。

我不是 Objective-c 开发人员,所以我在这里缺少什么?

【问题讨论】:

    标签: ios objective-c artoolkit


    【解决方案1】:

    给出&lt;AR/ar.h&gt;文件的正确位置。

    例如:

    #import "../ARAppCore/EAGLView.h"
    

    【讨论】:

      【解决方案2】:

      这就是你要做的:
      1.在ARToolKit的Download page下载iOS SDK
      2.解压存档并将文件夹移动到您的Xcode项目在文件系统中的位置 3. 在 Xcode 中打开您的项目
      4. 将 ARToolKit5iOS.xcodeproj 拖到你的项目中 5. 在左侧面板中选择您的项目,单击您的应用程序目标,然后在构建阶段,添加各种 AR 目标作为依赖项和链接库 6. 在 Build Settings 中的 Search Paths 下,将“Library/ARToolKit/include/”和“Library/ARToolKit/include/ios7”添加到 Header Search Paths。此外,将“Library/ARToolKit/lib”和“Library/ARToolKit/lib/ios7”添加到库搜索路径。 *

      • 此路径会有所不同,具体取决于您放置 ARToolKit sdk 的位置以及您命名文件夹的方式。正如您在第 2 步的手机中看到的那样。我添加了 Library 文件夹并将所有内容放在文件夹“ARToolKit”下。此外,Library 文件夹与 ARExperiment.xcodeproj 文件处于同一级别。因此,在引用它们时,我必须将“Library/ARToolKit/”放在首位。

      【讨论】:

        【解决方案3】:

        经过长期研究,我还将 ARToolKit 库集成到新的 iOS 项目中。

        需要在我们的项目中添加libincludeARAppCore。当我们将文件夹添加到您的项目时,请注意以下图片

        您可以通过在新应用的目标上添加“标题搜索路径”来解决此问题。请浏览下图。

        【讨论】:

          【解决方案4】:

          您可以创建一个框架目标并单独构建一个框架,然后将其放入您的应用程序中(这也适用于 swift 应用程序)。为此,您需要按以下方式开始:

          1. 下载ARToolKit5-bin-5.3.2-iOS.tar.gz并解压。
          2. 打开 ARToolKit5iOS.xcodeproj
          3. 在 Xcode 中转到文件 -> 新建 -> 目标
          4. 选择Cocoa Touch Framework,输入Product Name,设置语言为Objective-C,设置Embeed in Aplication为None
          5. 转到 ARFramework 目标构建阶段,您将根据 ARApp 目标对其进行配置,即:
            • 在目标依赖项的构建阶段中添加:AR、ARICP、ARvideo、ARgsub_es2
            • 在编译源中添加:ARAppCore/EAGLView.m、ARApp/ARViewController.m、ARView.m
            • 在 Link Binary With Libraries 添加:Accelerate.framework、libAR.a、libARICP.a、libARvideo.a、libARgsub_es2.a
          6. 转到构建设置并将自动引用计数设置为否
          7. 为您的框架目标创建新的 PCH 文件(前缀标头)
          8. 在 Build Settings 中将 Precompile Prefix Header 设置为 YES,在 Prefix Header 中设置您创建的 PCH 文件的路径
          9. 在创建的 PCH 文件中添加导入:#import &lt;Foundation/Foundation.h&gt;#import &lt;UIKit/UIKit.h&gt;
          10. 如果您的框架需要启用位码,请在您的框架目标和目标的构建设置中设置启用位码:AR、ARICP、ARvideo、ARgsub_es2
          11. 您的框架目标现在应该已成功构建,因此您可以检查产品 -> 在您的框架目标上构建

          请注意,在您添加到框架的 ARApp 中的 ARViewController.m 中,有两个硬编码路径指向 camera_para.dat 和 hiro.patt 文件,本示例中需要这些路径来检测 hiro 标记。为了解决这个问题,您可以将这两个文件添加到您的应用程序并编辑 ARViewController.m 以在主包中搜索它们,例如编辑将它们加载到 ARViewController.m 中的行:

          char *patt_name = [[NSBundle mainBundle] pathForResource:@"hiro" ofType:@"patt"].UTF8String;
          

          char *cparam_name = [[NSBundle mainBundle] pathForResource:@"camera_para" ofType:@"dat"].UTF8String;
          

          或根据您的需要实施一些自定义阅读。在情节提要上的应用程序中,将 viewcontroller 类设置为 ARViewController 就可以了,框架现在应该可以正常工作并扫描自定义应用程序中的 hiro 标记并在其顶部显示一个立方体。另请注意,这只是如何将 ARApp 功能复制到可以附加到您的应用程序中的框架中的一个示例,并且该框架将没有任何可见的接口,因此这只是您将其与基本单机集成所需要做的基本工作标记检测功能。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-12-29
            • 2017-06-23
            • 1970-01-01
            • 2018-03-07
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多