动态创建USDZ文件?

时间:2018-09-28 06:08:18

标签: objective-c ios12 usdz

有人知道如何动态地从obj创建usdz吗?我们的应用程序使用第三方库创建obj文件,并且要使用QLPreviewController,我们需要将其转换为usdz格式。有多种方法可以使用终端进行操作,但想知道是否有任何方法可以通过编程方式进行操作吗?

1 个答案:

答案 0 :(得分:0)

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

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

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