【发布时间】:2018-08-22 07:12:26
【问题描述】:
我正在演示使用 ModelIO 加载和纹理化 .OBJ 文件。 当我使用本地文件时,下面的代码可以正常工作。
guard let url = Bundle.main.url(forResource: "myVase", withExtension: "obj") else {
fatalError("Failed to find model file.")
}
let asset = MDLAsset(url:url)
guard let object = asset.object(at: 0) as? MDLMesh else {
fatalError("Failed to get mesh from asset.")
}
但是,当我将代码更改为使用 我的 Amazon S3 中的文件 而非本地文件时。我收到错误:“无法打开 OBJ 文件” & “无法从资产中获取网格。” 这是我的代码:
let url = URL.init(string: "https://s3.amazonaws.com/myObject/.../object.obj")
let asset = MDLAsset(url:url!)
guard let object = asset.object(at: 0) as? MDLMesh else {
fatalError("Failed to get mesh from asset.")
}
注意:我将链接公开并免费下载。
【问题讨论】:
-
您需要从亚马逊下载文件并将其放置在本地,因为 MDLAsset 仅从文件 URL 而不是从远程 URL 加载内容。
-
@deoKasuhai:我不想将所有文件都存储在本地。按照我的代码,我从远程下载 .obj 然后转换它,但是转换时出现问题