基于此答案中的建议,目标是在相机中向场景添加环境光。
这在Xcode场景编辑器中起作用,定向光设置为70%的白色,环境光为50%白色。定向光使用默认值的欧拉角。
编码此布置失败。好像没有添加方向光。对现场没有影响;好像只有环境光。
Euler角度的x
组件的不同值没有区别-PI/2,PI和其他值,但仍然没有更改。
但是,将方向光添加到场景的根节点(scene.rootNode.addChildNode(directionalLightNode)
(确实确实将光添加到场景中。
fileprivate func addLightNode() {
// Create ambient light
let ambientLightNode = SCNNode()
ambientLightNode.light = SCNLight()
ambientLightNode.light!.type = .ambient
ambientLightNode.light!.color = UIColor(white: 0.70, alpha: 1.0)
// Add ambient light to scene
scene.rootNode.addChildNode(ambientLightNode)
// Create directional light
let directionalLight = SCNNode()
directionalLight.light = SCNLight()
directionalLight.light!.type = .directional
directionalLight.light!.color = UIColor(white: 1.0, alpha: 1.0)
directionalLight.eulerAngles = SCNVector3(x: 0, y: 0, z: 0)
// Add directional light to camera
let cameraNode = sceneView.pointOfView!
cameraNode.addChildNode(directionalLight)
}
使用名称cameranode创建一个scnnode。创建一个scncamera,并将其分配给摄像机的相机属性。将摄像头添加到场景(作为rootnode的孩子(。
之后,您可以将光节点添加为摄影机的子节点,或者鉴于它是唯一的相机,是PointOfview节点的孩子(现在代表您创建的相机并添加到场景中(。默认摄像机及其点浏览节点不是场景对象层次结构的一部分。