Создание файла USDZ на лету? - PullRequest
0 голосов
/ 28 сентября 2018

Кто-нибудь знает, как создать usdz из obj на лету?Наше приложение создает файл obj, используя стороннюю библиотеку, и для использования QLPreviewController нам нужно преобразовать его в формат usdz.Есть способы сделать это с помощью терминала, но интересно, есть ли способ сделать это программно?

1 Ответ

0 голосов
/ 13 декабря 2018

Инженер из моей команды понял это на прошлой неделе!Создание USDZ файлов сейчас забавно - в настоящее время мы можем подделать его, сохранив файл USDC и ... переименовав расширение!

Сначала вы захотите загрузить файл .obj в filePath как MDLAsset

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

убедитесь, что MDLAsset может написать желаемое расширение, поддерживаемое usdc (двоичный формат USD)

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

...