перевод: E-kaR
Этот раздел глубоко описывает программирование блендеровских текстур и плагинов последовательности.
Относится к Blender v2.31
В этом разделе мы напишем базовый текстурный плагин, а потом пройдём все шаги его использования. Основные элементы, котрые стоят за текстурным плагином - это то, что вы определяете некоторые входы (inputs); позиция (position), величина нормали и др. информация. Затем вы задаёте интенсивность, цвет и/или информацию о нормали, это зависит от типа текстурного плагина.
Все файлы, необходимые для разработки плагинов, также как и несколько примеров плагинов можно найти в каталоге blender/plugins. Также вы можете получить кучю плагинов отсюда http://www.cs.umn.edu/~mein/blender/plugins
Плагины поддерживаются (загружаются/вызываются) в Blender'е использованием вызовов типа dlopen(). Система dlopen позволяет программе (Blender'у) использовать откомпилированные объекты, как если бы они были частью самой программы, это похоже на динамически подключаемые библиотеки, но загружать объект или нет определяется во время выполнения программы.
Преимущество использования системы dlopen заключается в очень быстром обращении к функциям, и не существует интерфейсной прослойки для обращения к плагину, это особенно критично если плагин будет вызываться несколько миллионов раз (в случае текстурного плагина) в единственном рендеринге.
Недостатком этой системы является то, что код плагина работает как часть самого Blender'а, если плагин терпит крах, то Blender тоже.
Файлы "include", находящиеся в подкаталоге Blender'а plugins/include/ документируют функции доступные для плагинов. Они включают библтотеку Imbuf для загрузки и работы с изображениями и буферами изображений, а также функции шума (noise) и турбулентности (turbulence) для тектурирования.