SceneKit如何在SCNSphere中添加纹理

时间:2015-06-05 03:33:13

标签: textures scenekit

我知道如何在SCNSphere表面上添加纹理,但是当我将相机移动到球体中时是黑暗的,所以我想知道如何在内表面添加纹理,这就是我现在使用的:

let boingBall = SCNSphere(radius: 4.0)
        let boingBallNode = SCNNode(geometry: boingBall)
        boingBallNode.position = SCNVector3(x: 0, y: 3, z: -10)
        scene.rootNode.addChildNode(boingBallNode)

        let material = SCNMaterial()
        material.diffuse.contents = UIImage(named: "texture.png")
        material.specular.contents = UIColor.whiteColor()
        material.shininess = 1.0
        boingBall.materials = [ material ]

由于

1 个答案:

答案 0 :(得分:0)

首先让我们创建相机和灯光

np_pred,np_logits = sess.run([pred, logits],feed_dict={image_placeholder: image})

注意相机和灯光位置。我们将为我们的世界"球体更大。 然后让我们创建一个名为" world"创造我们的领域。 将球体的第一个材质设置为 func camAndLights(){ let cameranode = SCNNode() cameranode.camera = SCNCamera() cameranode.position = SCNVector3(x: 0, y: 70, z: 200) cameranode.camera?.zFar = 1000.0 let lightbrnl = SCNNode() lightbrnl.light = SCNLight() lightbrnl.light?.type = SCNLight.LightType.directional lightbrnl.position = SCNVector3(x: 0, y: 200, z: 0) lightbrnl.light?.zFar = 1000.0 lightbrnl.light?.color = UIColor.cyan scene.rootNode.addChildNode(lightbrnl) scene.rootNode.addChildNode(cameranode) 并将世界节点置于中间位置(0,0,0)

isdouble = true

那应该这样做。只需在你的加载功能中调用 func world(){ let world = SCNSphere(radius: 700) world.firstMaterial?.diffuse.contents = UIImage(named: "sky") world.firstMaterial?.isDoubleSided = true let worldnode = SCNNode(geometry: world) worldnode.position = SCNVector3(x: 0, y: 0, z: 0) scene.rootNode.addChildNode(worldnode) } camAndLights()即可。 享受!