Tutorials

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

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

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

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

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

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

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

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

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

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

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

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

Создание точки на кривой Безье

Кривая Безье строится по четырем точкам: две основные точки (p0, p1) и две опорные (p0_hr, p1_hl).

Для того, чтобы построить на кривой дополнительную точку p2 в какой-то момент t, где t изменяется от 0 до 1 и представляет собой соотношение положения строящейся точки p2 к общей длине кривой, нужно проделать следующие вычисления:

Симуляция жидкости в Blender 2.80

Автор Pavel_Blend

Про что эта статья?

В этой статье я расскажу про симулятор жидкости в Blender 2.80. Этот симулятор был впервые добавлен в блендер ещё в конце 2005 года, в версию 2.40. С тех пор он изменялся не значительно (изменения были в основном в начале, после внедрения в блендер). Код симулятора был написан сторонним разработчиком по имени Nils Thuerey. Он написал библиотеку для симуляции жидкостей и назвал её El’Beem. Движок является воксельным и основан на методе решёточных уравнений Больцмана. Лучше всего подходит для создания воды, но имеет возможность создавать вязкие жидкости (мёд, шоколад…), которые реализованы не совсем хорошо. Скоро в блендер внедрят новый симулятор Mantaflow (кстати, Nils Thuerey принимает участие в его разработке).

Shadow catcher в EEVEE

В рендер-движке Cycles есть удобная возможность отрендерить объект с тенью на прозрачном фоне с помощью материала с функцией рендера только падающих на него теней “shadow catcher”. В рендер-движке EEVEE такой функции у материалов нет. Однако в EEVEE можно собрать свой “shadow catcher” на основе нодов.

Готовый материал “EEVEE Shadow Catcher” можно скачать в библиотеке BIS.

Освещение текстурой из лампы

В Blender Cycles при использовании стандартных источников освещения типа Light можно освещать объекты, используя любую текстуру, а не только отдельный цвет.

Добавим в сцену любой объект, например сферу:

shift+a – Mesh – UVSphere

и назначим ей простой диффузный материал.

Как превратить одиночный элемент BIS в паттерн

Одиночный процедурный элемент из библиотеки BIS можно легко превратить в равномерный повторяющийся паттерн.

Для примера загрузим из библиотеки круговой элемент и разместим его по центру объекта.