Могу ли я загрузить как объект, так и материалы как MDLAsset?

У меня есть каталог, содержащий obj, mtl и текстуры. Если я сделаю

let asset = MDLAsset(url: url)затем загружает сетку, но не текстуры. Теперь, если я переименую model.mtl файл в model.abc и запустите тот же код, я получаю на консоли следующее

020-10-08 19:24:36.277305-0700 ModelLoader2[1607:11820939] Unable to find mtl file /Users/myname/Documents/ModelLoader2/Models/model/model.mtl

Это говорит мне, что MDLAssetнаходит файл mtl, но не загружает текстуры должным образом. Есть ли способ заставить его загружать текстуры? Я вижу протокол под названием MDLAssetResolverсо следующим определением, но абсолютно НЕТ документации в Интернете и 0 полезных обращений на github

public protocol MDLAssetResolver : NSObjectProtocol {

    
    func canResolveAssetNamed(_ name: String) -> Bool

    func resolveAssetNamed(_ name: String) -> URL
}

Мой вопрос,

  1. как лучше всего загружать файлы obj? Я намеревался использовать ввод-вывод модели, чтобы экспортировать в .usdz и другие форматы
  2. Стоит ли тратить время на ввод-вывод модели, или мне следует перейти к другим методам? Похоже, что было несколько разговоров на WWDC, рекламирующих его как мощный фреймворк, но пока он кажется бесполезным из-за отсутствия документации.

1 ответ

Вы пробовали assets.loadTextures(), так как вы уже загрузили актив?

Другие вопросы по тегам