将纹理材质应用于 SceneKit 中的自定义对象

Tim*_*tch 5 opengl-es texture-mapping ios scenekit swift

SceneKit初学者在这里,做一个iOS项目。

我一直在围绕 SCN 几何体(球体,到目前为止)包裹纹理,如下所示:

let scene = SCNScene()
var planet : SCNGeometry
planet = SCNSphere(radius: 1.0)
let material = SCNMaterial()
material.diffuse.contents = UIImage(named: "texture.jpg")
planet.materials = [material]
let planetNode = SCNNode(geometry: planet)
scene.rootNode.addChildNode(planetNode)
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常。我有一些纹理,无论如何都适用于球体。

但是,当我尝试加载自定义 obj 文件时,当我从 obj 加载几何图形时,纹理材料似乎拒绝映射到它上面,如下所示:

let scene = SCNScene()
var planet : SCNGeometry
let tempScene = SCNScene(named: "model.obj")
planet = tempScene!.rootNode.childNodes[0].geometry!
let material = SCNMaterial()
material.diffuse.contents = UIImage(named: "texture.jpg")
planet.materials = [material]
let planetNode = SCNNode(geometry: planet)
scene.rootNode.addChildNode(planetNode)
Run Code Online (Sandbox Code Playgroud)

然而,模型对象似乎显示得很好,尽管没有纹理。
任何指针?