【问题标题】:USDZ files cannot be opened in QuickLook appUSDZ 文件无法在 QuickLook 应用中打开
【发布时间】:2021-03-22 13:56:16
【问题描述】:

我正在尝试使用CartMagician 插件WooCommerce 在我的网站上添加一些AR 3D 模型。对于 iPhone,我创建了一个 USDZ 文件。当我从 Safari 启动 AR 时,我收到错误 Zero KB。文件的路径是正确的。 USDZ 文件小于 20mb。我还使用 Model Viewer AR 插件测试了 USDZ 文件,但也出现了同样的问题,所以很可能是模型有问题,而不是平台有问题。我无法在任何地方找到有关错误Zero Kb 的任何信息。

我在这里上传了模型、USDZ 和 BLEND 文件。我还用error message上传了一个视频。

我以 3 种不同的方式创建了 USDZ 文件。使用 Blender 导出插件,使用 Pixar 的 USD 工具和 CartMagician 转换器。我现在尝试使用的模型是用 CartMagician 转换器制作的。

您能否提供一些关于转换为 USDZ 的文件准备过程以及如何使用它的提示?还有关于错误Zerok Kb的任何信息。

谢谢!

【问题讨论】:

    标签: swift augmented-reality arkit realitykit quicklook


    【解决方案1】:

    您的 USDZ 模型有超过 400K 的多边形和多个 4K 纹理。这是您的 QuickLook 应用程序的主要问题,因为 CPU/GPU 处理能力太高。甚至 macOS Quick Look 打开这样的文件也会有相当长的时间延迟。

    Apple recommends – AR 场景中的多边形总数不得超过 100K,任何纹理的大小不得超过 2K。

    另外,检查你的代码是否和我的一样:

    import ARKit
    import QuickLook
    
    extension ViewController: QLPreviewControllerDelegate,
                              QLPreviewControllerDataSource {
        
        func numberOfPreviewItems(in controller: QLPreviewController) -> Int {
            return 1
        }
        
        func previewController(_ controller: QLPreviewController, 
                        previewItemAt index: Int) -> QLPreviewItem {
            
            guard let path  = Bundle.main.path(forResource: "BannerESX5000",
                                                    ofType: "usdz")
            else { fatalError("Couldn't find a model") }
            
            let url = URL(fileURLWithPath: path)           
            return url as QLPreviewItem
        }
    }
    
    class ViewController: UIViewController {
        
        override func viewDidAppear(_ animated: Bool) {
            super.viewDidAppear(animated)
            
            let previewController = QLPreviewController()
            previewController.delegate = self
            previewController.dataSource = self            
            self.present(previewController, animated: true, completion: nil)
        }
    }
    

    【讨论】:

    • 感谢您的回答,在我写完这篇文章后,我在 iPhone 11 上测试了模型并且 iPhone 12 工作正常,问题出在 iPhone 7 上。我已将纹理减少到 512x512px,现在是在 iPhone 7 上也能正常工作。我不能在不破坏模型的情况下减少多边形的数量,所以我很高兴减少纹理起到了作用。在 iPhone 6 上它不起作用,模型看起来......奇怪的 3D 预览,我无法激活 AR。在 Android 上是另一回事,我已经在低至 Galaxy S3 的 Android 上测试了 *.glb 模型,它运行良好。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 2019-11-01
    • 2019-01-06
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    相关资源
    最近更新 更多