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