Локализация аддонов Blender – через API

Классический способ локализации аддона Blender (перевода аддона на разные языки) удобен тем, что для него требуется всего лишь одно обращение к Blender python API – получение текущей используемой локали. Он хорош своей независимостью, однако Blender не был бы Blender-ом, если бы не предоставил пользователям возможность локализации аддонов через свой API.

Принцип создания мультиязычных аддонов с использованием Blender python API по сути мало отличается от классического. Нам точно так же необходимо создать словарь со всеми вариантами перевода текстовых строк, используемых в нашем аддоне, и в дальнейшем пользоваться им для перевода.

Читать далее «Локализация аддонов Blender – через API»

Локализация аддонов Blender – классическая

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

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

Читать далее «Локализация аддонов Blender – классическая»

Blender – сто советов по моделированию

Видео-подборка с более чем сотней советов по моделированию в Blender.

Автор перевода: Bad Polygon

Читать далее «Blender – сто советов по моделированию»

Векторный Displacement

Урок в двух частях о том, как работает Vector Displacement в Blender, как его применять на практике, и как создавать геометрию при помощи нод из Shader Editor.

Часть 1:

Часть 2:

Автор: Erin Woodford

Читать далее «Векторный Displacement»

Еще один способ добавить автокомплит к коду при разработке аддонов Blender в Visual Studio Code

Для повышения удобства разработки аддонов Blender с помощью Microsoft Visual Studio Code в этой IDE можно подключить автодополнение кода для стандартных типов API Blender.

Метод подключения автодополнения кода предложен Zen3515.

Читать далее «Еще один способ добавить автокомплит к коду при разработке аддонов Blender в Visual Studio Code»

Часы в Blender при помощи нодов

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

Автор урока  Dr Blender

Процедурная эрозия и износ

Урок по созданию и использованию процедурных шейдеров эрозии и износа в Blender 2.9.

Автор: Erin Woodford

Читать далее «Процедурная эрозия и износ»

Как получить координаты точек рендера в композитинге

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

Получить фактор распределения координат по высоте или ширине рендера можно с помощью текстурных нод.

Читать далее «Как получить координаты точек рендера в композитинге»

Mantaflow – решение наиболее часто встречающихся проблем

Урок по симулятору жидкости и дыма “Mantaflow”. В нем рассматриваются самые часто встречающиеся проблемы и даются подсказки, как с ними справится.

Автор: Blender Made Easy

Прольем свет на цветовые пространства

Урок, рассказывающий о цветовых пространствах, используемых в Blender.

Автор Михаил Солуянов

Краткое содержание:

  • 0:00 – Об особенностях зрения
  • 1:18 – Что такое sRGB?
  • 2:02 – Разница между Linear и sRGB
  • 2:30 – Почему Blender использует Linear вместо sRGB?
  • 3:03 – Нормали и Non-color data

 

Основы освещения в Blender EEVEE

Урок, посвященный разбору различных аспектов освещения в рендер-движке Blender EEVEE.

Автор урока: Brainy Man

Читать далее «Основы освещения в Blender EEVEE»

Нормально о нормалях

Урок о том, что представляют из себя карты нормалей.

Автор Михаил Солуянов.

Краткое содержание:

  • 0:08 Проверьте себя: попробуйте найти ошибку
  • 0:34 Что такое Нормаль?
  • 1:12 В чем отличие карт нормалей DirectX и OpenGL?
  • 2:05 Как использовать DirectX карты в Blender?
  • 2:26 Инверсия карты нормалей на вывернутых полигонах
  • 2:53 Бонус

Выравнивание элементов пользовательского интерфейса по колонкам

Часто элементы интерфейса, размещаемые в пользовательских панелях, не соответствуют друг другу по размерам, в результате чего общая компоновка панели выглядит не красиво. В качестве наглядного примера создадим пользовательскую панель и разместим на ней кнопку оператора и текстовое поле ввода.

Выровнять размеры кнопки и поля ввода здесь напрашивается само собой.

Читать далее «Выравнивание элементов пользовательского интерфейса по колонкам»

Eeve шейдер органики – вирус под электронным микроскопом

Два урока по созданию шейдера вируса под электронным микроскопом для рендер-движка Blender EEVEE.

nCoV-2019 Electron Microscope shader
 

SARS-CoV-2 2019-nCoV
Автор: Виталий Сокол

Рендер из консоли только на определенных GPU-картах

Иногда для эффективного распределения нагрузки на “железо” бывает нужно запустить рендер из Blender только на определенных видеокартах их нескольких имеющихся.

Для этого можно использовать несложный скрипт, в котором указать номера используемых для рендера устройств.

Читать далее «Рендер из консоли только на определенных GPU-картах»

Назначение вертексам дополнительных свойств

При работе с геометрией меша может появится необходимость назначить каждому вертексу дополнительные свойства или данные, которые должны записываться в blend-файл при сохранении, и к которым нужно иметь доступ.

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

Читать далее «Назначение вертексам дополнительных свойств»

Как сохранить данные меша в текст

Иногда бывает необходимо сохранить данные для создания меша (массивы его вертексов и индексов полигонов) в текст, например, для дальнейшего использования в скрипте или аддоне.

Можно экспортировать меш в один из открытых форматов, например в *.obj, но если нужны только данные по вертексам и полигонам, можно использовать следующий несложный скрипт:

Читать далее «Как сохранить данные меша в текст»

Создание кастомного свойства

API Blender предоставляет для использования набор простых типов свойств, описанных в bpy.props (IntProperty,  BoolProperty и т.д.). Но базовых типов не всегда хватает, иногда нужны более сложные. API Blender позволяет группировать простые свойства, создавая таким образом более сложные.

Рассмотрим создание такого свойства на примере матрицы 3х3.

Читать далее «Создание кастомного свойства»

Рисование в окне вьюпорта

API Blender предоставляет возможность рисовать в окне вьюпорта (3D Viewport) при помощи модуля gpu.

Для примера нарисуем в центре сцены упрощенный виджет системы координат, состоящий из трех линий разного цвета.

Читать далее «Рисование в окне вьюпорта»

Как привязать к нажатию кнопки вызов функции, а не оператора

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

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

Читать далее «Как привязать к нажатию кнопки вызов функции, а не оператора»

Передача параметров в оператор

При создании собственных операторов иногда бывает нужно передавать в них определенные значения – вызывать операторы с параметрами.

Передаваемый параметр должен быть определен, как свойство оператора.

Читать далее «Передача параметров в оператор»

Решаем проблему несоответствия размера сечения пути с применённым к нему профилем самому профилю

Автор: Андрей М.

Рубрика “Много букв о простом”

Нужна мне рама. Нет, две рамы: одна побольше другая поменьше, но сделанные из одного профиля. Нарисовал прямоугольник, выставил нужные размеры, продублировал, выставил другие размеры. Нарисовал отдельно профиль. Для сечения обоим прямоугольникам применил этот профиль. …почему получились разные рамы? И ни одна не соответствует размеру профиля? А, масштаб забыл применить. Применил. Размеры сечения поменялись, стали другими, но опять не равными профилю. Как сделать равными – читай ниже!

Решаем проблему несоответствия размера сечения пути с применённым к нему профилем самому профилю.

Такая проблема возникает, когда путь для профилирования строится любым образом, но потом масштабируется до нужного размера. При этом не важно приведён масштаб у него к 1 или нет. Если мы применим к нему нужный нам профиль, то он будет отличается по размеру от заданного… Почему? Сейчас увидим.

Читать далее «Решаем проблему несоответствия размера сечения пути с применённым к нему профилем самому профилю»