我想允许用户通过触摸旋转场景但是照明保持固定。使用默认相机和默认照明时,这非常有效。但是,默认灯是"直接打开",即沿着屏幕的-z轴。我宁愿把它指向一个更像舞台灯的角度,比如说从右前方开始。
但是当我创建自己的灯时,它似乎需要连接到现有节点,例如rootNode。完成此操作后,当用户操作场景时,灯光随模型一起旋转。
是否有一种简单的方法可以在使用默认相机旋转时保持灯光固定,或者我是否需要认真参与创建自定义相机?
答案 0 :(得分:2)
灯光已经“固定”了:也就是说,每个光源都会在场景中保持其位置和方向,除非你做了一些改变。但听起来相反,你想要一个相对于相机固定的灯。
要实现此目的,请勿将灯光附加到场景的根节点。而是将其附加到相机所连接的同一节点。或者,如果要调整灯光相对于摄像机的位置,可以构建一个小节点树,其中一个叶子包含摄像头,另一个叶子包含定向光。
您几乎总是想在SceneKit中创建自己的相机或相机。默认的用户可操作相机对于快速启动和运行以及调试非常有用,但不是您希望向最终用户公开的内容。