我知道如何在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 ]
由于
答案 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()
即可。
享受!