2

有人知道如何从 obj 动态创建 usdz 吗?我们的应用程序使用第三方库创建了一个 obj 文件,为了使用 QLPreviewController,我们需要将其转换为 usdz 格式。有一些方法可以使用终端来做到这一点,但想知道是否有任何方法可以以编程方式做到这一点?

4

1 回答 1

0

我团队的一位工程师上周发现了这一点!现在创建USDZ文件很有趣 - 目前我们可以通过保存USDC文件并...重命名扩展名来伪造它!

首先,您需要将 filePath 处的 .obj 文件作为 MDLAsset 加载

NSURL *url = [NSURL fileURLWithPath:filePath];
MDLAsset *asset = [[MDLAsset alloc]initWithURL:url];

确保MDLAsset可以编写所需的扩展 usdc 受支持(美元二进制格式)

if([MDLAsset canExportFileExtension:@"usdc"]){
  NSLog(@"able to export as usdc");

  // save the usdc file
  [asset exportAssetToURL:usdcUrl];
}

将 usdc 重命名为 usdz,因为仅此而已

NSError *renameErr;
NSFileManager *fm = [[NSFileManager alloc] init];
BOOL mvResult = [fm moveItemAtPath:usdcPath toPath:usdzPath error:& renameErr];
if(! mvResult){
  NSLog(@"Error renaming usdz file: %@", [renameErr localizedDescription]);
}

希望这会有所帮助,直到 Apple 可以为我们提供更全面的操作方法。如果您想阅读更详细的细分 - https://www.scandy.co/blog/how-to-export-simple-3d-objects-as-usdz-on-ios

于 2018-12-13T17:13:36.113 回答