API

Расчет AABB для меша

Для быстрого и грубого определения пересечений геометрии двух объектов обычно используются ограничивающие объекты – сферы или параллелограммы в которые вписаны все точки объекта. Хотя просчет пересечений по ограничивающим объектам часто бывает неточен, он очень эффективен по скорости работы. Одним из видов ограничивающих объектов является AABB (Axis Aligned Bounding Box) – параллелограмм, выровненный по глобальным осям координат.

Выделение всех объектов, у которых нет материала

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

Выпуклая оболочка

Функция convex_hull() позволяет создать для меша выпуклую оболочку – форму, которая полностью охватывает меш по его крайним точкам. С ее помощью можно быстро строить упрощенные модели из сложных мешей.

Получение всех классов для меню в Blender

Для того чтобы вносить изменения в меню UI Blender, например, добавлять новые пункты или переопределять меню полностью, в первую очередь требуется узнать класс изменяемого меню.

Кастомные иконки в Blender

Чаще всего разработчики аддонов для придания кнопкам пользовательского UI индивидуальности используют иконки из встроенной в Blender библиотеки. Однако в качестве иконок в UI можно загружать и устанавливать абсолютно любые внешние изображения.

Выделение объектов по имени их UV-карты

При необходимости найти и выделить все объекты в сцене, у которых имя карты развертки UV-Map соответствует заданному, можно это сделать при помощи Blender Python API.

Быстрая синхронизация отображения объектов во вьюпорте и для рендера

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

Положение вьюпорта

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

Перерисовка экрана

Не все действия, производимые через Blender Python API, вызывают немедленную перерисовку экрана Blender. Поэтому довольно часто приходится принудительно вызывать обновление экрана для того, чтобы пользователь сразу видел все происходящие изменения.