我试图通过SceneKit&amp ;;在.obj 3d模型上应用.mtl文件纹理。型号I / 0。
当我尝试在其上应用纹理的.jpg时,我的代码工作正常:
extension MDLMaterial {
func setTextureProperties([MDLMaterialSemantic:String]) -> Void {
for (key,value) in textures {
var finalURL = NSBundle.mainBundle().URLForResource(value, withExtension: "")
guard let url = finalURL else {
// fatalError("Failed to find URL for resource \(value).")
return
}
let property = MDLMaterialProperty(name:fileName!, semantic: key, URL: url)
self.setProperty(property)
}
}
}
我正在为setTextureProperties使用以下MDMaterial扩展:
{{1}}
我应该如何加载.mtl文件并将其应用到我的模型上以使其具有纹理? 我应该声明SCNMaterial的哪些属性用于从.mtl文件中获取纹理数据?
答案 0 :(得分:0)
可能有点晚了,但我面临同样的问题,我可以加载.mtl信息的方式是通过和场景创建对象,例如,我正在加载{{3} }
let scene = SCNScene(named: "rose.obj")
确保.mtl和jpg包含纹理包。