API

Проверяем, находится ли точка внутри полигона или за его пределами

При проверке коллизий в 2D проекциях между точкой и полигоном необходимо выяснить, лежит ли точка внутри полигона, или же она расположена вне его площади.

Преобразование цвета в Blender в формат RGB565

Выходной формат цветов пикселей на рендере в Blender – RGBA в линейном цветовом диапазоне. Если нужно сохранить рендер в формате RGB565, такой формат используется, например, в некоторых старых играх, значения цвета пикселей необходимо преобразовать.

Преобразование цвета в Blender из цветового пространства Linear в sRGB и обратно

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

Получаем список вертексов, в порядке их следования друг за другом

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

Порядок выполнения событий рендера

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

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

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

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

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

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

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