Не удается отобразить 3d-файл из каталога кеша

Не могли бы вы помочь мне определить проблему здесь?

Кажется, что я не могу отобразить 3d-файл из каталога кеша. У меня возникла ошибка SceneKit IO: ошибка, файлы COLLADA не поддерживаются на этой платформе.

Сохранение zip-файла в каталоге кэша содержит файл .dae и .png для текстуры. С помощью Scene Kit вы можете:

Импортируйте 3D-объекты COLLADA и создайте сцены, созданные камерами, огнями и сетками. https://developer.apple.com/library/mac/documentation/3DDrawing/Conceptual/SceneKit_PG/Introduction/Introduction.html

Благодарю.

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_async(queue, ^{ NSURL *url = [NSURL URLWithString:@"my url" NSData *data = [NSData dataWithContentsOfURL:url options:0 error:&error]; if(!error) { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); NSString *path = [paths objectAtIndex:0]; NSString *zipPath = [path stringByAppendingPathComponent:@"zipfile.zip"]; [data writeToFile:zipPath options:0 error:&error]; if(!error) { ZipArchive *za = [[ZipArchive alloc] init]; if ([za UnzipOpenFile: zipPath]) { BOOL ret = [za UnzipFileTo: path overWrite: YES]; if (NO == ret){} [za UnzipCloseFile]; NSString *floorFilePath = [path stringByAppendingPathComponent:@"house1.dae"]; NSURL *floorPathURL = [NSURL fileURLWithPath:floorFilePath]; dispatch_async(dispatch_get_main_queue(), ^{ SCNView *sceneView = (SCNView *)self.view; sceneView = (SCNView *)self.view; sceneView.allowsCameraControl = YES; sceneView.autoenablesDefaultLighting = YES; sceneView.backgroundColor = [UIColor whiteColor]; sceneView.scene = [SCNScene sceneWithURL:floorPathURL options:nil error:nil]; }); } } else { NSLog(@"Error saving file %@",error); } } else { NSLog(@"Error downloading zip file: %@", error); } }); 

Ссылка на класс SCNSceneSource содержит таблицу:

 Format Filename Extension Supported in Collada Digital Asset Exchange .dae OS X v10.8 and later Alembic .abc OS X v10.10 and later SceneKit compressed scene .dae or .abc OS X v10.10 and later iOS 8.0 and later SceneKit archive .scn OS X v10.10 and later iOS 8.0 and later 

Вы уверены, что ваш .dae файл является «сценой сцены SceneKit»? По-видимому, iOS поддерживает загрузку сжатых сцен из файлов .dae . Xcode должен автоматически конвертировать вашу Collada .dae в сжатую сцену (с тем же расширением), когда она компилирует ваше приложение. Если вы загружаете файл извне своего пакета приложений (например, из URL-адреса во время выполнения), это не будет сжатая сцена SceneKit, если вы не предприняли шаги для его преобразования в другом месте.

Я нашел следующий комментарий по этому вопросу:

Чтобы преобразовать файл dae в файл, который может быть прочитан SCNScene (named: …, вы можете преобразовать файл вручную, используя следующую команду в терминале: /Applications/Xcode.app/Contents/Developer/usr/bin/scntool –convert InFile.dae –format c3d –out OutFile.dae –force-y-up –force-interleaved –look-for-pvrtc-image (Конечно, замените InFile.dae и OutFile.dae на ваши собственные filenames) Извините, в комментариях нет реального форматирования. – Marcus Feb 2 at 18:23

Я не знаю, подходят ли все эти флаги для вашего использования. Согласно этому веб-сайту , есть также программа командной строки copySceneKitAssets (в том же подкаталоге Xcode), которая преобразует .scnassets , так что, возможно, именно это вы и хотите использовать.

  • Компиляция OpenCV 2.4.5 в xcode 4.6.2 для iOS
  • UIPageControl: создание представлений в раскадровки, добавление их в качестве дочернего элемента, изменение текста ярлыка
  • UIView in nib не подключается к IBOutlets
  • XCode Interface Builder: как настроить конструктор интерфейса, чтобы показать 3,5-дюймовый iphone?
  • «Нет такого модуля» Проблемы импорта сторонних фреймов при каждом запуске проекта
  • Как правильно построить статическую библиотеку armv7 с помощью xcodebuild
  • Сохраните изображение в NSUserDefault и зайдите в другой ViewController
  • Swift - Parse - проверьте, выполнено ли имя пользователя
  • Xcode 6.1 - Nib не может быть открыт, потому что у вас нет разрешения на просмотр
  • Раскадровка на Xcode 5 по умолчанию, а как его использовать как редактор для контроллеров представлений?
  • Я не могу получить скриншоты в iOS5 с помощью AVAssetImageGenerator
  • Interesting Posts

    NSTimeinterval проблема для даты в iphone sdk

    Пользовательская форматированная (инвертированная T) граничная Uiview в iOS

    Загрузите два изображения в WebServer

    перенести свое приложение с устройства на xcode

    Можно ли установить uitabbar в левой части экрана?

    как получить имя изображения при нажатии на uiimageview?

    Анализ данных Webservice iOS

    EXC_BAD_ACCESS в объявлении класса AppDelegate

    Как использовать два разных пользовательских подкласса UITableViewCell в одной таблице?

    Несколько версий iTunesArtwork в одном проекте?

    CIContext, iOS 9 и проблемы с памятью

    Как выбрать цвет в шестнадцатеричной форме или форме RGB вместо использования цветов, данных мне в Swift

    Facebook SDK в iOS 8 с быстрой версией Swift / Xcode 5, возвращающий accessToken, но без идентификатора пользователя после обновления

    Как определить, выбирает ли пользователь изображение или видео из библиотеки при использовании UIImagePickerController в iOS?

    Каков наилучший способ «защитить псевдо-поток» mp4 видео (flash, html5, pc, iOS …)?

    Давайте будем гением компьютера.