Быстрая установка точки, в которую направлены источники освещения в сцене

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

Сделать это очень просто.

Выделим несколько источников света. Обратите внимание – один из них обязательно должен быть активным объектом сцены. Теперь нажмем Shift+ t на клавиатуре и подвигаем мышкой.

При движении курсора мышки все выделенные источники освещения теперь “следят” за курсором. После клика левой кнопкой мышки все они останутся направленными в точку клика.

Этот функционал обеспечивается выполнением оператора transform_axis_target(). Мы можем выполнить его также и при помощи Blender Python API.

Так как этот оператор привязан к контексту 3D вьюпорта, вызов оператора нужно переопределить через temp_override().

Для начала получим указатели на рабочую область 3D вьюпорта и ее регион.

Теперь мы можем вызвать временное переопределение контекста, передав в параметрах полученные значения,

и вызвать нужный нам оператор.

Обратите внимание, что в параметрах оператора необходимо передать значение “INVOKE_REGION_WIN”, иначе оператор завершится с ошибкой.

Заодно мы можем избавиться от необходимости обязательно назначать один из выделенных источников освещения активным объектом. Так как мы уже используем temp_override, мы можем переопределить внутри него и активный объект, передав указатель на него в параметрах.

Итоговый код будет выглядеть следующим образом:

Вызвав его, мы можем указывать точку направления для источников освещения мышкой в рабочей области 3D вьюпорта.

0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии