1

目标是模拟类似于这些图像的照明:

关于 SceneKit 光照以及不同光照类型如何相互作用的文档很少(例如,如果您将聚光灯添加到已经存在环境光的场景中会发生什么),因此通过痛苦的反复试验,我们有了走到这一步:

在此处输入图像描述

如场景图中所示,有环境光和聚光灯。(全向光和定向光被隐藏了。)光斑锥体内的阴影和照明都非常好,但光锥之外的一切都是黑色的。

问题1:你是怎么做到的,所以斑点锥外的区域不是黑色的?场景中有一个环境光(不是默认的,是明确添加的),所以不应该使圆锥体外部的区域变亮吗?

问题2:理想情况下,如果在圆锥体内部,整个场景将是litas,同时保留阴影。这可能吗?将光点移动到较高的 Y 值(例如 1000)会点亮整个场景,但冷色阴影会消失。

问题 3:在下面的屏幕截图中,启用泛光灯会洗掉光斑的锥体。这是预期的行为吗?你怎么能把灯组合起来,这样它们就不会互相冲刷掉?

屏幕截图 2(启用泛光灯会清除聚光灯):

在此处输入图像描述

4

1 回答 1

0

您可以在环境类型和低强度的场景中添加额外的光源。

这是swift 4示例:

let light = SCNLight()
light.type = .ambient
let node = SCNNode()
node.light = alight
self.scene.rootNode.addChildNode(node)
于 2019-05-08T14:19:13.283 回答