Python

Получение путей к стартовым файлам в Blender

Для различных направлений работы в Blender организованы отдельные стартап-конфигурации – наборы базовых настроек параметров сцены, рендера и пользовательского интерфейса. Каждая такая конфигурация хранится в отдельном файле и загружается вместе с ним, когда пользователь открывает Blender или выполняет команду File – New из главного меню.

Переключение рабочих экранов в Blender через Python API

Рабочие экраны в Blender – это сохраненные наборы рабочих областей (окон нужного типа). Обычно переключение между ними производится кликом мышкой по вкладке с именем рабочего экрана в верхней части UI Blender. Также между рабочими экранами можно переключаться при помощи Blender Python API.

Зеркалим (miror) объект с сохранением кастомных нормалей

Для того чтобы отразить объект относительно какой-либо оси (X, Y или Z) в Blender обычно применяется оператор miror. Например, чтобы отзеркалить объект по глобальной оси X, в меню окна 3D вьюпорта нужно выбрать: Object – Miror – X Global. Или можно поступить проще и просто применить к объекту масштаб -1 по нужной оси: s – x – -1. Однако, если на объекте присутствуют кастомные нормали, они не пересчитываются, что в дальнейшем вызывает появление различных артефактов.

Выключение коллекции через Blender Python API

Исключить коллекцию из взаимодействия со сценой можно сняв галочку в чекбоксе, расположенном в Аутлайнере напротив имени нужной коллекции. Для того чтобы проделать это при помощи Blender Python API, необходимо обратиться к коллекции через слой видимости View Layer сцены, на котором расположена нужная коллекция.

Получение списка данных из свойств объектов с использованием list comprehension

Большинство объектов в Blender имеют в своей структуре множество списков данных. Например, внутри объекта “меш” присутствуют списки с набором вертексов этого меша, набором ребер, набором полигонов. А в структуре каждого вертекса присутствует, например, список с его координатами по осям X, Y и Z.

Пересчет нормалей в bmesh

При работе с геометрией меша через объект bmesh мы можем “пересчитывать” нормали – разворачивать нормали в противоположную сторону, отталкиваясь от направления нормалей соседних полигонов.

Разбиваем последовательность вертексов на блоки для построения полигонов

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

Установка sampling pattern для рендер-движка Cycles

Начиная с Blender версии 3.5 в панели рендер-движка Cycles был убран переключатель для режимов адаптивной выборки. Однако сам параметр никуда не делся, и его значение оставлено по умолчанию в “Tabulated Sobol”.

bmesh – удаление с указанием режима (контекста)

Для удаления у bmesh-объекта точек, ребер или полигонов удобнее всего использовать метод remove() для соответствующего набора элементов. Кроме того, для объекта bmesh предусмотрен оператор bmesh.ops.delete(), который позволяет удалять элементы меша с использованием разных режимов (контекста).