Могу ли я преобразовать USDZ в твердую сетку, такую ​​как STL - PullRequest
0 голосов
/ 22 февраля 2019

Я использовал приложение ios для создания файла usdz с использованием arkit, но теперь я хочу преобразовать сканирование в твердую 3d-модель, такую ​​как stl или obj.Есть ли приложение IOS или Mac, которое позволяет для этого преобразования.Я не могу найти приложение, которое может открыть их, кроме xcode и Preview, но не позволяет мне экспортировать в 3d модель.

1 Ответ

0 голосов
/ 22 февраля 2019

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 Gallery и разархивировал пример в stratocoaster_usdz/ в моем каталоге Downlaods.Затем используйте следующий код:

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
}
...