Для того, чтобы перейти из глобальной системы координат в локальную систему координат объекта нужно умножить глобальные координаты на инвертированную матрицу объекта:
В линейке Blender 2.8x система отмены операций undo/redo (ctrl+z / ctrl+shift+z) была полностью переделана по сравнению с линейкой 2.7x. Одним из результатов такого изменения API является то, что при выполнении операции отмены все объекты в сцене перестраиваются заново – текущий объект уничтожается, а вместо него создается совершенно новый объект. Ссылки, которые указывали на старый объект, до выполнения операции отмены, после нее указывают на невалидный объект с которым больше нельзя работать.
В Blender 2.81 и более ранних версиях в python-консоли можно было просмотреть возможные варианты завершения набираемого кода, нажав “ctrl + пробел”. В Blender 2.82 эта возможность исчезла.
На самом деле этот функционал в 2.82 не удален, его просто перенесли на нажатие клавиши “tab“.
Часто элементы интерфейса, размещаемые в пользовательских панелях, не соответствуют друг другу по размерам, в результате чего общая компоновка панели выглядит не красиво. В качестве наглядного примера создадим пользовательскую панель и разместим на ней кнопку оператора и текстовое поле ввода.
Выровнять размеры кнопки и поля ввода здесь напрашивается само собой.
Часто бывает нужно получить рендер всей сцены с одним материалом. Например для “глиняных” рендеров (clay render) или рендеров сетки (wireframe render). Если для рендер-движка Cycles в настройках View Layer Properties – Override предусмотрена возможность глобально заменить все материалы на один, то для рендер-движка EEVEE такой возможности нет.
Быстрое переопределение материалов для рендер-движка EEVEE можно сделать с помощью небольшого скрипта, как это показано в следующем видео:
Когда по нажатию кнопки в кастомном UI вы вызываете оператор и передаете в него нужные параметры, обратите внимание на то, что только указанные явно параметры будут переданы в оператор. Остальные параметры останутся со значениями по умолчанию.
Например, нам нужно вызвать оператор “transform_apply” – применение трансформаций к объекту, указав применить только масштаб.
Иногда для эффективного распределения нагрузки на “железо” бывает нужно запустить рендер из Blender только на определенных видеокартах их нескольких имеющихся.
Для этого можно использовать несложный скрипт, в котором указать номера используемых для рендера устройств.