SceneKit,固定灯的位置

SceneKit, fixing a light's position

我想允许用户通过触摸旋转场景,但让灯光保持固定。使用默认相机和默认照明效果很好。但是,默认光线是 "straight on",即沿着屏幕的 -z 轴。我宁愿它的角度更像舞台灯,比如从右前方。

但是当我创建自己的灯时,它似乎需要附加到现有节点,例如 rootNode。完成此操作后,当用户操纵场景时,灯光随模型一起旋转。

是否有一种简单的方法可以在使用默认相机旋转时保持照明固定,或者我是否需要认真参与创建自定义相机?

照明已经"fixed":也就是说,每个光源在场景中保持其位置和方向,除非您进行某些更改。但这听起来像是,你想要一个相对于相机固定的灯。

为此,请不要将灯光附加到场景的根节点。相反,将其附加到相机所附加的同一节点。或者如果你想调整灯光相对于相机的位置,你可以构建一个小节点树,其中一个叶子包含相机,另一个叶子包含定向光。

您几乎总是想在 SceneKit 中创建自己的一个或多个相机。默认的 user-manipulable 摄像头对于快速启动和 运行 以及调试很有用,但不是您想要向最终用户公开的东西。