iOS - ARKit + Vuforia:将 Vuforia 坐标转换为 ARKit 坐标
iOS - ARKit + Vuforia : Convert Vuforia Coordinates to ARKit Coordinates
我想使用 Vuforia 检测标记并在其上放置一个 3d 对象。从那时起,我想在我的应用程序中使用 ARKit。我如何知道检测到的标记或 3d 对象的 ARKit 世界变换?
我正在使用相同的视图控制器来初始化 ARKit SceneView 并启动 Vuforia Engine。我经历了这个 。我不太确定这是否有效。另外,我需要用本机开发这个 iOS 有什么办法可以实现吗?
随着 ARKit 1.5 Beta 升级,可以使用 ARKit 相机本身检测和跟踪标记。所以不需要使用 Vuforia 引擎来检测标记。我的要求现在可以在不使用 Vuforia 的情况下实现。
您可以使用此方法将 Vuforia 矩阵转换为 SCNKit 矩阵 -
- (SCNMatrix4)SCNMatrix4FromVuforiaMatrix44:(Vuforia::Matrix44F)matrix {
GLKMatrix4 glkMatrix;
for(int i=0; i<16; i++) {
glkMatrix.m[i] = matrix.data[i];
}
return SCNMatrix4FromGLKMatrix4(glkMatrix);
}
我想使用 Vuforia 检测标记并在其上放置一个 3d 对象。从那时起,我想在我的应用程序中使用 ARKit。我如何知道检测到的标记或 3d 对象的 ARKit 世界变换?
我正在使用相同的视图控制器来初始化 ARKit SceneView 并启动 Vuforia Engine。我经历了这个
随着 ARKit 1.5 Beta 升级,可以使用 ARKit 相机本身检测和跟踪标记。所以不需要使用 Vuforia 引擎来检测标记。我的要求现在可以在不使用 Vuforia 的情况下实现。
您可以使用此方法将 Vuforia 矩阵转换为 SCNKit 矩阵 -
- (SCNMatrix4)SCNMatrix4FromVuforiaMatrix44:(Vuforia::Matrix44F)matrix {
GLKMatrix4 glkMatrix;
for(int i=0; i<16; i++) {
glkMatrix.m[i] = matrix.data[i];
}
return SCNMatrix4FromGLKMatrix4(glkMatrix);
}