【发布时间】:2018-07-30 23:40:30
【问题描述】:
我正在开发一个关于太阳系的应用程序。 我正在尝试关闭发射纹理,光线照射到行星表面。但问题是,默认情况下,发射纹理始终显示发射点,无论是否存在光。
override func viewDidLoad() {
super.viewDidLoad()
let scene = SCNScene()
let earth = SCNSphere(radius: 1)
let earthNode = SCNNode()
let earthMaterial = SCNMaterial()
earthMaterial.diffuse.contents = UIImage(named: "earth.jpg")
earthMaterial.emission.contents = UIImage(named: "earthEmission.jpg")
earth.materials = [earthMaterial]
earthNode.geometry = earth
scene.rootNode.addChildNode(earthNode)
let lightNode = SCNNode()
lightNode.light = SCNLight()
lightNode.light?.type = .omni
lightNode.position = SCNVector3(x: 0, y: 10, z: 5)
scene.rootNode.addChildNode(lightNode)
sceneView.scene = scene
}
【问题讨论】:
-
现在面临同样的问题,发射应该只显示在夜间,即由 SCNLight 照亮的一侧。有人有什么想法吗?
-
SceneKit 是否有纹理的位图遮罩?