Добавление SCNLight внутри SK3DNode - PullRequest
1 голос
/ 14 марта 2020

Я создаю SK3DNode внутри SKScene:

let ball: SK3DNode = {
    let scnScene = SCNScene()
    let ballGeometry = SCNSphere(radius: 200)
    let ballNode = SCNNode(geometry: ballGeometry)
    ballNode.position = SCNVector3(0, 0, 0)

    let material = SCNMaterial()
    material.diffuse.contents = UIImage(named: "wall")
    ballGeometry.materials = [material]

    let light = SCNLight()
    light.type = .omni
    light.color = UIColor.white
    let lightNode = SCNNode()
    lightNode.light = light

    scnScene.rootNode.addChildNode(ballNode)
    scnScene.rootNode.addChildNode(lightNode)
    let node = SK3DNode(viewportSize: CGSize(width: 1000, height: 1000))
    node.scnScene = scnScene
    node.autoenablesDefaultLighting = false
    return node
}()

Однако сфера становится черной. Пробовал с или без материала. Что-то мне не хватает?

1 Ответ

1 голос
/ 16 марта 2020

Сфера помещается вручную на (0, 0, 0), как и свет (значение по умолчанию). Это означает, что свет находится внутри сферы. Это означает, что поверхность сферы обращена в сторону от источника света и поэтому не горит.

...