2016-01-26 3 views
1

Я хотел бы разрешить пользователю поворачивать сцену на ощупь, но освещение остается фиксированным. Это работает достаточно хорошо, используя камеру по умолчанию и стандартное освещение. Тем не менее, индикатор по умолчанию «прямо на», то есть вдоль оси -z экрана. Я бы предпочел, чтобы он был направлен на угол, более похожий на свет сцены, скажем, спереди справа.SceneKit, фиксируя положение света

Но когда я создаю свой собственный свет, кажется, что его нужно привязать к существующему узлу, например rootNode. Когда это будет сделано, свет затем вращается вокруг модели, когда пользователь манипулирует сценой.

Есть ли простой способ сохранить фиксированное освещение во время вращения с помощью камеры по умолчанию или мне нужно серьезно заняться созданием пользовательской камеры?

ответ

2

Освещение уже «фиксировано»: каждый источник света сохраняет свое положение и направление внутри сцены, если вы не сделаете что-то, чтобы его изменить. Но это похоже на то, что вы хотите иметь свет, который фиксируется относительно камеры.

Для этого не прикрепляйте свет к корневому узлу сцены. Вместо этого присоедините его к тому же узлу, к которому прикреплена камера. Или, если вы хотите отрегулировать положение света относительно камеры, вы можете построить небольшое дерево узлов, причем один лист содержит камеру, а другой лист содержит направленный свет.

Вы почти всегда хотите создать свою собственную камеру или камеры в SceneKit. Пользовательская манипулирующая камера по умолчанию полезна для быстрого подъема и запуска и отладки, но не для того, что вы хотите предоставить конечным пользователям.

+0

Спасибо за ответ. Я сделал камеру и прикрепил к ней пару огней. По какой-то причине они остаются фиксированными, а узлы с геометрией реагируют на мои жесты вращения. Для меня это всего лишь черный ящик, но он делает именно то, что я хочу. – bpedit

Смежные вопросы