Tutorials

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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