为什么无法加载referenceImage?

问题描述 投票:0回答:1

目前,我尝试使用 Apple Vision Pro 测试 ImageTrackingProvider。我从一些基本代码开始:

import Foundation
import RealityKit
import ARKit

@MainActor class ARKitViewModel: ObservableObject{
    private let session = ARKitSession()
    private let imageTracking = ImageTrackingProvider(referenceImages: ReferenceImage.loadReferenceImages(inGroupNamed: "AR"))
    
    func runSession() async {
        do{
            try await session.run([imageTracking])
        }
        catch{
            print(error)
        }
    }
    
    func processUpdates() async {
        for await _ in imageTracking.anchorUpdates{
            print("test")
        }
    }
}

我的AR文件夹里只有一张图片。我添加了尺寸,并且 AR 文件夹中没有错误消息。

当我尝试使用 Vision Pro 运行应用程序时,我收到以下错误:

ar_image_tracking_provider_t <0x28398f1e0>: Failed to load reference image <ARReferenceImage: 0x28368f120 name="IMG_1640" physicalSize=(1.350, 2.149)> with error: Failed to add reference image.

它找到了图像,但加载似乎有问题。我尝试了 jpeg 和 png 格式。

我不明白为什么它无法加载ReferenceImage。

我使用 Xcode 版本 15.3 beta 3

我通过沉浸式视图访问 ARKitViewModel 类:

struct ImmersiveView: View {
    @StateObject var arKitVM = ARKitViewModel()
    var body: some View {
        RealityView { content in
            
        }
        .task {
            await arKitVM.runSession()
        }
        .task {
            await arKitVM.processUpdates()
        }
    }
}
swiftui arkit apple-vision visionos
1个回答
0
投票

physicalSize=(1.350, 2.149)
的参考图像太小。这比一张邮票还少。选择参考图像,然后在 Xcode Inspector 中指定图像的物理尺寸,就像您期望在用户的真实环境中发现的那样。此外,JPEG 或 PNG 的最小图像尺寸必须至少为 400x400。

此外,由于您正在与图像跟踪提供商运行会话,因此您需要使用

NSWorldSensingUsageDescription
键(在 info.plist 选项卡中设置)来指示您的应用程序需要访问世界感知数据。

© www.soinside.com 2019 - 2024. All rights reserved.