Python

Как выбрать слой UV через Blender Python API

Управлять доступом к слоям развертки объекта при помощи Blender Python API можно через список слоев разверток uv_layers. Обращаясь к любому слою из списка мы можем сделать его активным как для выбора, так и для рендера.

Получаем веса вертексов по вертекс-группам

Для того чтобы получить веса вертексов меша, как они распределяются по его вертекс-группам, при помощи Blender Python API нужно соотнести индекс вертекс-группы с индексом группы текущего вертекса.

Быстрое переключение (тогглинг) шейдинга flat – smooth

Для того чтобы быстро переключaть шейдинг геометрии из плоского режима flat в сглаженный режим smooth и обратно, нужно соответствующим образом менять значение свойства “smooth” для каждого полигона меша.

Видимость объекта во вьюпорте

В ряде случаев бывает необходимо определить, виден ли в данный момент определенный объект в окне 3D вьюпорта в Blender, или – нет. В общем случае определить видимость объекта во вьюпорте можно при помощи функции location_3d_to_region_2d из модуля view3d_utils.

Отслеживание переключения между слоями видимости ViewLayer

В Blender Python API не предусмотрено отдельных обработчиков для отслеживания переключений слоев видимости ViewLayer. Однако если нужно выполнять какие-то действия при их переключении, их можно отследить при помощи шины передачи сообщений.

Управление положением 3D вьюпорта через Blender Python API

При помощи Blender Python API можно управлять не только объектами, но и видом из 3D вьюпорта. Как и у любого объекта сцены, у вьюпорта есть матрица, при помощи которой вьюпорт можно перемещать в нужное положение.

Перевод значения из одного диапазона в другой

Функция range служит для перевода значения из одного диапазона, например от 0 до 1000 в другой, например от -1 до 1. Для быстрого получения значения в разных диапазонах, определим свою функцию range.

Вектор направления взгляда из 3D вьюпорта

Для того чтобы получить вектор направления 3D вьюпорта, например, чтобы определить расположение вьюпорта относительно какого-либо объекта сцены, можно воспользоваться функцией region_2d_to_vector_3d из модуля view3d_utils.