2

我有一个包含 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使用以下定义调用的协议,但在互联网上绝对没有文档,在 github 上有 0 个有用的点击

public protocol MDLAssetResolver : NSObjectProtocol {

    
    func canResolveAssetNamed(_ name: String) -> Bool

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

我的问题是,

  1. 加载 obj 文件的最佳方法是什么?我原本打算使用 Model I/O,以便可以导出到.usdz其他格式
  2. 模型 I/O 是否不值得花时间处理,还是应该转向其他方法?似乎有一些 WWDC 讨论将其宣传为一个强大的框架,但到目前为止,由于缺乏文档,它似乎毫无用处。
4

0 回答 0