Я использовал приложение ios для создания файла usdz с помощью arkit, но теперь я хочу преобразовать сканирование в твердую трехмерную модель, такую как stl или obj. есть ли приложение для iOS или Mac, которое позволяет такое преобразование. Я не могу найти ни одного приложения, которое могло бы их открывать, кроме xcode и предварительного просмотра, но ни одно из них не позволяет мне экспортировать в 3D-модель.
Могу ли я преобразовать USDZ в сплошную сетку, такую как stl
Ответы (3)
ModelIO
может, по крайней мере, в iOS.
import ModelIO
let usdz = URL(fileURLWithPath: "model.usdz")
let asset = MDLAsset(url: usdz)
let stl = URL(fileURLWithPath: "model.stl")
try asset.export(to: stl)
.usdz
- это просто заархивированный .usdc
файл с текстурами (из официальной документации < / а>). Если вы хотите экспортировать файл на Mac, измените расширение файла на .zip
, разархивируйте файл и используйте ModelIO
для экспорта файла .stl
.
Откройте Xcode, создайте новую площадку, выберите macOS в качестве платформы. Я загрузил тестовый файл из галереи Apple Quick Look и разархивировал его в stratocoaster_usdz/
в моем Каталог загрузок. Затем используйте следующий код:
import ModelIO
// Get the path to the Downloads directory in your home folder
let directory = FileManager.default.urls(for: .downloadsDirectory, in: .userDomainMask).first!
let usdc = URL(fileURLWithPath: "stratocaster_usdz/Stratocaster.usdc", relativeTo: directory)
// Load the usdc file that was packed in the usdz file
let asset = MDLAsset(url: usdc)
do {
let target = URL(fileURLWithPath: "stratocaster.stl", relativeTo: directory)
// Export to .stl
try asset.export(to: target)
} catch {
error
}
Спасибо! Именно то, что я искал. Я создал сценарий Mac OS, чтобы автоматизировать это в Терминале. Я также сделал нечто подобное в быстром действии Automator для запуска из Finder с помощью RightClick в файле, но не смог придумать способ прикрепить это здесь.
#!/usr/bin/env osascript -l JavaScript
// Save to a file, e.g. usdz2stl.js
// chmod +x usdz2stl.js
// usdz2stl.js /path/to/model.usdz
ObjC.import('ModelIO')
function run(argv) {
var inFile = argv[0];
var outFile = inFile + ".stl";
console.log("Converting " + inFile + " ...");
var usdz = $.NSURL.alloc.initFileURLWithPath(inFile);
var asset = $.MDLAsset.alloc.initWithURL(usdz);
var stl = $.NSURL.alloc.initFileURLWithPath(outFile);
asset.exportAssetToURL(stl);
console.log("Conversion Complete: " + outFile);
}
Просто откройте файл .USDZ или USDC в XCODE.
Если вы разархивировали .zip, вы сохраните файл .USDC и папку с именем «0», которая содержит все текстуры, материалы, альфа-канал в .PNG.
После открытия .USDZ или .USDC в XCODE >> Файл >> Экспорт
Вы можете напрямую выбирать основные форматы .OBJ, .STL и многие другие.