Python

Переносим кнопки из меню Quick Favorites на пользовательскую панель

К сожалению, доступа к меню Quick Favorites через Python API в Blender разработчики пока не предусмотрели. Однако, возможность перенести все меню целиком на пользовательскую панель есть. Мы можем просто отрисовать контент Quick Favorites на layout пользовательской панели.

Находим центр полигона

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

Матрица поворота из одного вектора в другой в 2D

Рассчитать матрицу поворота из одного вектора в другой в 2D пространстве нам может понадобиться, например, при работе с UV – картами развертки. Часто это бывает нужно, чтобы подогнать один UV-остров развертки под другой.

Сортировка материалов объекта по алфавиту

Чтобы отсортировать список материалов в слотах материалов объекта в Blender нужным образом, например, по алфавиту, мы можем воспользоваться созданной нами ранее функцией перестановки материалов в слотах.

Перемещение материала из одного слота материалов объекта в другой в Blender

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

Особенности выделения/снятия выделения через точки в bmesh

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

Отображение сетки сцены для изображений-референсов

При моделировании “по референсу” бывает нужно, чтобы разметочная сетка 3D сцены отображалась поверх изображения-референса. Так удобнее выставлять привязки и соотносить строимую модель со сценой в целом.

Как получить промежуточную матрицу трансформации из имеющейся

При повороте или перемещении объекта с помощью матриц трансформации, в ряде случаев нам нужно иметь возможность выделить из целого поворота/перемещения его часть. Например, поворачивая объект на 180 градусов, нам нужно повернуть его  не сразу, а в несколько приемов, каждый раз поворачивая его, допустим на 30 градусов. Помочь с этим нам может линейная интерполяция матриц.

Сравнение векторов

Для того чтобы сравнить два вектора – определить, указывают ли оба вектора в одну и ту же точку, нужно сравнить координаты обоих векторов и если они соответственно равны, значит и вектора тоже равны. Однако координаты векторов задаются величинами типа float, сравнение которых на равенство, из-за особенностей хранения такого типа в памяти компьютера, никогда не бывает точным.

Строим окружность по трем точкам в Blender

Из курса математики мы знаем, что через любые три точки в пространстве можно провести только одну окружность. Пусть у нас есть три точки в сцене Blender, заданные координатами V0 (x0, y0, z0), V1 (x1, y1, z1) и V2 (x2, y2, z2). Давайте разберемся, как мы можем построить окружность, которая проходит через эти три точки.