iphone - 使用陀螺仪的增强现实示例代码

标签 iphone augmented-reality gyroscope

早上好,

我在 StackOverFlow 上搜索了大约一个小时,找到了很多用于创建增强现实应用程序的示例代码(主要是 github),这些应用程序显示第二个位置相对于您当前位置(例如纽约)的位置。

但是,我注意到这些都没有使用 iPhone 4 中提供的陀螺仪功能,该功能为最终用户提供了更加流畅的体验。

有谁知道是否存在这样的示例代码示例?

干杯,

查理

最佳答案

你绝对可以使用CoreMotion从陀螺仪获取数据。基本方法是获取 CMAttitude.rotationMatrix并将其逆(转置)乘以您最初设置的引用矩阵。 developer.apple.com 上的 Teapot 示例项目展示了使用 CoreMotion 的基本方法。

对于真正的增强现实应用程序,您需要使用 OpenGL ES 创建模型。在尝试过 GL ES 2.0 后,我个人发现 v1.1 在 iOS 上更可靠。 Teapot 示例也使用 GLES 1.1。

使用陀螺仪比使用磁力计来获取设备绕其引用轴的旋转更加准确和“平滑”。诀窍在于如何最初校准引用矩阵,以获得设备的真实“航向”,并将 GL ES 模型对象放置在相机周围的正确位置。完成此操作后,您可以通过将 GL 的 viewMatrix 与 CMAttitude.rotationMatrix 的倒数相乘来旋转 3D 模型。

最后,如果您也打算支持 iPhone 3G,请不要忘记检查 gyroAvailable CMMotionManager 的属性并提供使用磁力计的替代实现。

关于iphone - 使用陀螺仪的增强现实示例代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5209956/

相关文章:

iphone - 如何使用otool检测iphone和ipad中的非公共(public)api

iphone - 关于 Xcode 4 中通用应用程序的问题

opencv - 如何将使用 EPnP 计算的相机位姿变换应用于 VTK 相机?

swift 陀螺仪 : Unexpectedly found nil while unwrapping an Optional value

ios - CMMotionManager deviceMotion 姿态值过多 "flickering"

iphone - 使用 Google map 的火车轨道路线

ios - 图像不会在 iPhone 纵向 View 中缩放

swift - SceneKit AR 游戏 fps 越来越低,设备随着使用而变热

swift - ARKit – 光估计

accelerometer - 如何利用加速度计识别反手和正手击球?