【问题标题】:How to programmatically export 3D mesh as USDZ using ModelIO?如何使用 ModelIO 以编程方式将 3D 网格导出为 USDZ?
【发布时间】:2021-01-10 04:42:05
【问题描述】:

是否可以使用 ModelIO 和 MetalKit 框架以编程方式将 3D 网格导出为 .usdz 文件格式?

这是一个代码:

import ARKit
import RealityKit
import MetalKit
import ModelIO

let asset = MDLAsset(bufferAllocator: allocator)
asset.add(mesh)

let filePath = FileManager.default.urls(for: .documentDirectory, 
                                         in: .userDomainMask).first!
    
let usdz: URL = filePath.appendingPathComponent("model.usdz")

do {
    try asset.export(to: usdz)               
    let controller = UIActivityViewController(activityItems: [usdz], 
                                      applicationActivities: nil)
    controller.popoverPresentationController?.sourceView = sender
    self.present(controller, animated: true, completion: nil)
} catch let error {
    fatalError(error.localizedDescription)
}

当我按下 保存 按钮时,我得到一个错误。

【问题讨论】:

    标签: swift augmented-reality scenekit realitykit usdz


    【解决方案1】:

    2021 年 6 月 24 日

    目前苹果开发者可以使用canExportFileExtension(_:)类型方法导出.usd.usda.usdc文件:

    let usd = MDLAsset.canExportFileExtension("usd")
    let usda = MDLAsset.canExportFileExtension("usda")
    let usdc = MDLAsset.canExportFileExtension("usdc")
    let usdz = MDLAsset.canExportFileExtension("usdz")
        
    print(usd, usda, usdc, usdz)
    

    打印出来:

    true true true false
    

    但是,您可以使用名为 write(to:options:delegate:progressHandler:) 的实例方法轻松地将 SceneKit 的场景导出为 .usdz 文件。

    let path = FileManager.default.urls(for: .documentDirectory,
                                         in: .userDomainMask)[0]
                                             .appendingPathComponent("file.usdz")
        
    sceneKitScene.write(to: path, 
                   options: nil, 
                  delegate: nil, 
           progressHandler: nil)
    

    【讨论】:

      猜你喜欢
      • 2020-12-07
      • 1970-01-01
      • 1970-01-01
      • 2014-11-11
      • 1970-01-01
      • 1970-01-01
      • 2011-01-07
      • 1970-01-01
      • 2012-02-07
      相关资源
      最近更新 更多