【发布时间】:2016-01-26 15:59:32
【问题描述】:
我想允许用户通过触摸旋转场景,但保持照明不变。使用默认相机和默认照明效果很好。但是,默认灯是“直通”的,即沿着屏幕的 -z 轴。我宁愿它被导向一个更像舞台灯的角度,比如从前右上方。
但是当我创建自己的灯光时,它似乎需要附加到现有节点,例如 rootNode。完成后,随着用户对场景的操作,灯光会随着模型旋转。
是否有一种简单的方法可以在使用默认相机旋转时保持照明固定,或者我是否需要认真参与创建自定义相机?
【问题讨论】:
我想允许用户通过触摸旋转场景,但保持照明不变。使用默认相机和默认照明效果很好。但是,默认灯是“直通”的,即沿着屏幕的 -z 轴。我宁愿它被导向一个更像舞台灯的角度,比如从前右上方。
但是当我创建自己的灯光时,它似乎需要附加到现有节点,例如 rootNode。完成后,随着用户对场景的操作,灯光会随着模型旋转。
是否有一种简单的方法可以在使用默认相机旋转时保持照明固定,或者我是否需要认真参与创建自定义相机?
【问题讨论】:
照明已经“固定”了:也就是说,每个光源都保持其在场景中的位置和方向,除非您对其进行更改。但听起来你想要一个相对于相机固定的灯光。
要实现这一点,请不要将灯光附加到场景的根节点。相反,将其附加到相机所附加的同一节点。或者,如果您想调整灯光相对于相机的位置,您可以构建一个小节点树,其中一个叶子包含相机,另一个叶子包含定向光。
您几乎总是希望在 SceneKit 中创建自己的一个或多个相机。默认的用户可操作摄像头有助于快速启动和运行以及调试,但不是您想要向最终用户公开的东西。
【讨论】: