【问题标题】:SceneKit, fixing a light's positionSceneKit,固定灯光的位置
【发布时间】:2016-01-26 15:59:32
【问题描述】:

我想允许用户通过触摸旋转场景,但保持照明不变。使用默认相机和默认照明效果很好。但是,默认灯是“直通”的,即沿着屏幕的 -z 轴。我宁愿它被导向一个更像舞台灯的角度,比如从前右上方。

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

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

【问题讨论】:

    标签: scenekit lighting


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的回复。我做了一台相机,并为它设计了几盏灯。出于某种原因,当具有几何形状的节点响应我的旋转手势时,这些保持固定。这对我来说有点像一个黑匣子,但它完全符合我的要求。
    • 嗨 - 我正在努力实现与@bpedit b nut 完全相同的效果,即使我认为我正在遵循答案,但似乎无法让它工作。任何人都可以提供一些快速代码,这样我就可以看到哪里出错了?!!!提前致谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    相关资源
    最近更新 更多