我正在研究增强现实应用。我使用开放的GL ES 2.0增强了一个3D模型。现在,我的问题是当我移动设备时,3D模型应该根据设备移动速度移动。就像这个应用程序一样:https://itunes.apple.com/us/app/augment/id506463171?l=en&ls=1&mt=8。我用UIAccelerometer来实现这一目标。但是,我无法做到。 我应该使用UIAccelerometer来实现它还是任何其他框架?
答案 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框架来增强原生iOS中的3D模型。没关系。但是我要 移动设备时移动3d模型。任何示例代码都没有提供它。
嗯,它没有在任何示例代码中提供,但这并不一定意味着它不可能或太难。
我会这样做(使用Android,C ++,但无论如何它必须在iOS上非常相似):
只需在实际的DrawElements之前进行翻译:
QCARUtils::translatePoseMatrix(xMOV, yMOV, zMOV, &modelViewProjectionScaled.data[0]);
运动的数据将由一个函数准备,该函数从加速度计读取它们作为时间和加速度......
我真正发现的挑战是找到正确的校准,以便正确调整传感器API的输出,这是一个完全不同的AR / Vuforia无关问题。在这里,我猜你在各种设备方面比Android开发者有更大的优势......