Какие форматы 3D-моделей поддерживает ARKit?
Какие форматы 3D-моделей поддерживает ARKit? Кто-нибудь знает все поддерживаемые форматы для использования в ARKit, и какой формат Xcode можно экспортировать для использования в приложении?
1 ответ
DAE и OBJ/MTL поддерживаются автоматически, в том смысле, что вы можете просто перетащить файлы в папку.scnassets, и она будет обрабатывать их для вас. Лично у меня было меньше проблем с OBJ/MTL, но я не очень хорошо разбираюсь в 3D.
В документации для Model I/O говорится, что вы можете импортировать 3D-активы из следующих файлов
Набор поддерживаемых форматов включает Alembic (.abc), объект Wavefront (.obj), Polygon (.ply) и стандартный язык тесселяции (.stl). Также могут поддерживаться дополнительные форматы.
Я не работал с этой платформой, поэтому не могу сказать вам, насколько хорошо она работает с ARKit.
И вы можете взглянуть на AssimpKit, который позволяет экспортировать несколько форматов в сцены.scn SceneKit
ARKit 4.0
Сам ARKit не читает никаких 3D-форматов. Это могут делать только движки рендеринга.
SceneKit
а также RealityKit
фреймворки, которые являются спутниками ARKit 4.0, поэтому они могут читать в поли-геометрии, поддерживая несколько популярных форматов 3D-файлов на данный момент:
Биржа цифровых активов Collada
.dae
Описание универсальной сцены Pixar в архиве
.usdz
Описание универсальной сцены Pixar в формате ASCII
.usda
Двоичное описание универсальной сцены Pixar
.usd
а также.usdc
Форматы Reality Composer и RealityKit
.rcproject
а также.reality
Объект волнового фронта
.obj
вместе с материалом.mtl
Формат файла обмена Alembic
.abc
Формат файла многоугольника
.ply
Формат файла стереолитографии
.stl
SceneKit Сцена
.scn
Лучший способ использовать эти форматы - инициализировать SCNScene
из MDLAssset вот так:
import SceneKit.ModelIO
guard let url = Bundle.main.url(forResource: file, withExtension: "usdz")
else {
fatalError()
}
let mdlAsset = MDLAsset(url: url)
let scene = SCNScene(mdlAsset: mdlAsset)
Полный набор типов файлов, документированных как поддерживаемые платформой ввода-вывода модели, можно найти здесь:
https://developer.apple.com/documentation/modelio/mdlasset/1391813-canimportfileextension
В набор поддерживаемых расширений и форматов входят:
- .abc Alembic
- .usd,.usda,.usdc Описание универсальной сцены
- .usdz Описание универсальной сцены (для мобильных устройств)
- .ply Многоугольник
- .obj Объект волнового фронта
- .stl Стандартный язык тесселяции
Также могут поддерживаться дополнительные форматы.
Похоже, что новый предпочтительный тип файла Apple для ARKit на iOS (начиная с iOS 12) - это их собственный usdz: