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

pnwntuvh  于 2023-06-21  发布在  Swift
关注(0)|答案(1)|浏览(165)

我正试图在我的网站上添加一些AR 3D模型与CartMagician插件WooCommerce。对于iPhone,我创建了一个USDZ文件。当我从Safari启动AR时,我得到错误Zero KB。文件的路径正确。USDZ文件的大小小于20 MB。我还测试了USDZ文件与模型查看器AR插件有同样的问题,所以,可能,有一个问题的模型不与平台。我在任何地方都找不到关于错误Zero Kb的任何信息。
我已经上传了模型在这里,USDZ和BLEND文件。我还上传了一个视频与error message
我已经创建了USDZ文件在3种不同的方式。使用Blender导出插件,使用Pixar的USD工具和CartMagician转换器。我现在尝试使用的模型是用CartMagician转换器制作的。
你能,请,提供了一些提示有关文件准备过程中转换为USDZ和有关它应该如何使用?还有关于错误Zerok Kb的任何信息。
谢谢你!

2eafrhcq

2eafrhcq1#

您的USDZ模型具有超过400 K个多边形,并具有多个4K纹理。这是你的QuickLook应用程序的主要问题,因为CPU/GPU处理太高。即使是macOS Quick Look打开这样的文件也有相当长的时间延迟。
Apple的建议是following-AR场景中的多边形总数不得大于100 K,任何纹理的大小不得大于2K。
另外,检查你的代码是否像我的一样:

import ARKit
import QuickLook

extension ViewController: QLPreviewControllerDelegate,
                          QLPreviewControllerDataSource {
    
    func numberOfPreviewItems(in controller: QLPreviewController) -> Int {
        return Int(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)
    }
}

相关问题