无法在 QuickLook 应用程序中打开 USDZ 文件

USDZ files cannot be opened in QuickLook app

我正在尝试使用 WooCommerceCartMagician 插件在我的网站上添加一些 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 conveter 制作的。

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

的任何信息

谢谢!

您的 USDZ 模型有超过 400,000 个多边形和几个 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)
    }
}