如何解决如何使用ModelIO以编程方式将3D网格导出为USDZ?
是否可以使用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)
}
当我按下 Save 按钮时,我得到一个错误。
解决方法
2020年9月28日。
目前,Apple开发人员可以导出.usd
,.usda
和.usdc
皮克斯的族文件格式。
您可以使用canExportFileExtension(_:)类型的方法检查格式的兼容性:
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
希望ModelIO尽快提供USDZ出口支持。
P.S。
还支持导出.obj
和.stl
文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。