【问题标题】:How to load Vuforia QCAR tracking file data during runtime in iOS如何在 iOS 运行时加载 Vuforia QCAR 跟踪文件数据
【发布时间】:2012-10-23 11:42:28
【问题描述】:

我正在使用 Vuforia sdk 开发增强现实,我想在运行时加载 3d 对象,我想从 web 服务中获取它并在需要时加载它,所以基本上我的问题只是我们如何才能在运行时加载任何 .h 文件。首先,我们可以在运行时加载它,如果可能的话,我们该怎么做。

【问题讨论】:

    标签: iphone ios xcode augmented-reality


    【解决方案1】:

    如果您有动态数据,将其放入 .h 文件是没有意义的。标头仅在程序编译时有用,而不是在运行时。

    【讨论】:

    • 是的,我知道 .h 文件在编译时解析,但使用 vuforia sdk,它为您提供 3d 对象的 .h 文件,其中包括 3d 对象的顶点,所以我想在运行时执行此操作。
    • .h 中的内容在用作标题时不会改变。另一方面,如果您只是想在程序中将其作为文本文件打开并将内容解释为数据,那应该没问题。然后你会像任何其他下载一样使用它,而忽略它是一个标题的事实。然后,您如何处理 3D 信息取决于您自己的代码。
    【解决方案2】:

    AFAIK vuforia 只是将垂直、三角形等数组放入 h 文件中。所以你不需要在运行时加载 h 文件(这是不可能的,程序运行时没有 h 文件)。相反,您需要获取这些数组并将它们提供给 vuforia

    【讨论】:

      【解决方案3】:

      只需从网络下载该文件,将其存储在应用程序目录中,然后像应用程序捆绑的示例数据一样加载它

      NSString * pathToDownloadedFile; //should have path to your file
      
      QCAR::DataSet *dataSet = nil;
      QCAR::TrackerManager& trackerManager = QCAR::TrackerManager::getInstance();
      QCAR::ImageTracker* imageTracker = static_cast<QCAR::ImageTracker*>    (trackerManager.getTracker(QCAR::Tracker::IMAGE_TRACKER));
      dataSet = imageTracker->createDataSet();
      dataSet->load([pathToDownloadedFile cStringUsingEncoding:NSASCIIStringEncoding], QCAR::DataSet::STORAGE_ABSOLUTE);
      
      
      imageTracker->activateDataSet(dataSet);
      

      【讨论】:

      • 不是针对数据集而不是 object3d 标头吗?如果是这样,如何加载具有给定答案的 xml 和 dat 文件?
      • 当您让 vuforia 加载 X.xml 时,它也会从同一路径加载 X.dat,但 Vuforia 只是用于识别可追踪的 AR 引擎,对于 3D 显示,您需要 3D 引擎,如果您愿意vuforia 的简单起点,请参阅 Nineveh.gl AR 示例,该示例还从文件中加载 3D 模型(在应用程序运行时很容易下载):nineveh.gl/downloads
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-05
      • 1970-01-01
      相关资源
      最近更新 更多