增强现实,将3d模型分别移动到设备移动

时间:2013-09-12 11:43:26

标签: ios opengl-es-2.0 augmented-reality

我正在研究增强现实应用。我使用开放的GL ES 2.0增强了一个3D模型。现在,我的问题是当我移动设备时,3D模型应该根据设备移动速度移动。就像这个应用程序一样:https://itunes.apple.com/us/app/augment/id506463171?l=en&ls=1&mt=8。我用UIAccelerometer来实现这一目标。但是,我无法做到。          我应该使用UIAccelerometer来实现它还是任何其他框架?

3 个答案:

答案 0 :(得分:2)

这是复杂的算法,而不仅仅是加速度计。您最好使用任何第三方框架,例如Vuforia,Metaio。这样可以节省很多时间。

下载并查看一些示例应用。这正是你想要的。

https://developer.vuforia.com/resources/sample-apps

您可以使用Unity3D加载3D模型并导出XCODE项目。或者你可以使用open GL ES。

答案 1 :(得分:1)

根据您的评论,我了解您希望将模型锚定在真实世界的位置?如果是这样,那么最简单的方法是为您的模型提供GPS位置并读取设备的GPS位置。实际上有许多研究涉及位置跟踪的主题,但是现在GPS是您最好的(也可能是唯一的)选项,而无需进入先进的位置跟踪解决方案。

由于我的帐户太新,我无法添加评论。我还会添加警告,不要尝试使用加速度计数据定位设备。由于加速度与位置的双重整合,你会得到太多错误(参见Indoor Positioning System based on Gyroscope and Accelerometer)。

答案 2 :(得分:0)

  • 我肯定会使用Vuforia来完成这项任务。
  • 关于你的评论:

      

    我正在使用Vuforia框架来增强原生iOS中的3D模型。没关系。但是我要   移动设备时移动3d模型。任何示例代码都没有提供它。

嗯,它没有在任何示例代码中提供,但这并不一定意味着它不可能或太难。

我会这样做(使用Android,C ++,但无论如何它必须在iOS上非常相似):

  • 找到你的renderFrame函数
  • 只需在实际的DrawElements之前进行翻译:

    QCARUtils::translatePoseMatrix(xMOV, yMOV, zMOV, &modelViewProjectionScaled.data[0]);

    运动的数据将由一个函数准备,该函数从加速度计读取它们作为时间和加速度......

我真正发现的挑战是找到正确的校准,以便正确调整传感器API的输出,这是一个完全不同的AR / Vuforia无关问题。在这里,我猜你在各种设备方面比Android开发者有更大的优势......