Рисование в окне вьюпорта
API Blender предоставляет возможность рисовать в окне вьюпорта (3D Viewport) при помощи модуля gpu.
Для примера нарисуем в центре сцены упрощенный виджет системы координат, состоящий из трех линий разного цвета.
API Blender предоставляет возможность рисовать в окне вьюпорта (3D Viewport) при помощи модуля gpu.
Для примера нарисуем в центре сцены упрощенный виджет системы координат, состоящий из трех линий разного цвета.
В Blender 2.81 рендер по умолчанию открывается в новом окне. Для того, чтобы открывать его в текущем окне, как раньше, нужно открыть окно настроек Preferences перейти в раздел Interface и в группе Temporary Windows настроить параметр Render In нужным образом.
Стрим от Simon Thommes по созданию печатной платы шейдерными нодами в nodevermber челлендже.
В связи с изменениями в структуре нодов в последнем релизе Blender 2.81 все открытые материалы в BIS обновлены под эту версию Blender. Совместимость с младшими версиями Blender могла быть потеряна (зависит от используемых в материале нодов).
К нажатию кнопки в пользовательском интерфейсе обычно привязывают вызов нужного оператора. Однако часто действия, которые нужно выполнить при нажатии на кнопку, достаточно просты и не требуют оформления в виде отдельного оператора. Да и забивать стек зарегистрированных операторов множеством специфических операторов, рассчитанных на выполнение одной конкретной узкоспециализированной функции не имеет смысла. Гораздо удобнее было бы связать нажатие кнопки с вызовом отдельной функции, однако API Blender позволяет связывать кнопки только с вызовом оператора.
Обойти проблему создания отдельного оператора под каждую кнопку можно, воспользовавшись тем, что оператор можно вызывать с указанием входных параметров.
Как привязать к нажатию кнопки вызов функции, а не оператораRead More »
Для корректного задания значений свойству типа EnumProperty необходимо знать все его возможные варианты.
Если попытаться задать значение, которого нет в перечислимом свойстве, Blender выдаст ошибку вида:
TypeError: bpy_struct: item.attr = val: enum “xxx” not found in (‘value_001′, value_002’, …)
где:
xxx – значение, которые мы попытались задать свойству EnumProperty
value_001, value_002, … – возможные значения, которые может принимать данное свойство EnumProperty
Как получить все возможные значения свойства EnumRead More »
Для того, чтобы передвинуть курсор к определенному вертексу меша нужно выполнить следующий код:
1 |
bpy.context.scene.cursor.location = bpy.context.object.matrix_world @ bpy.context.object.data.vertices[_VERTEX_NUMBER_].co |
Умножение на матрицу мира должно осуществляться именно в таком порядке (матрица слева).
В API Blender 2.79 созданный объект добавляется в сцену через:
1 |
bpy.context.scene.objects.link(new_object) |
Попытка добавить объект в сцену таким образом в Blender 2.80, приводит к ошибке:
‘bpy_prop_collection’ object has no attribute ‘link’
В Blender 2.80 API добавлять объект нужно не в саму сцену, а в ее коллекции.
Добавить объект в активную коллекцию:
1 |
bpy.context.scene.collection.objects.link(new_object) |
Добавить объект в коллекцию по ее имени:
1 |
bpy.data.collections['collection_name'].objects.link(new_object) |