【发布时间】:2022-04-28 01:10:41
【问题描述】:
我有一个包含 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 useful hits on github
public protocol MDLAssetResolver : NSObjectProtocol {
func canResolveAssetNamed(_ name: String) -> Bool
func resolveAssetNamed(_ name: String) -> URL
}
我的问题是,
- 加载 obj 文件的最佳方式是什么?我本来打算使用 Model I/O,以便可以导出为
.usdz和其他格式 - 模型 I/O 是否不值得投入时间来处理,或者我应该转向其他方法吗?似乎有一些 WWDC 演讲大肆宣传它是一个强大的框架,但到目前为止,由于缺乏文档,它似乎毫无用处。
【问题讨论】:
标签: ios swift scenekit apple-model-io