Python

Аддон PartitionRender v.0.0.3

Обновление аддона PartitionRender до версии 0.0.3

  • Добавлены кнопки Reset и Clear.
    • Reset – сброс текущей партиции на начальную.
    • Clear – сброс с удалением всех сохраненных партиций.
  • При установке/снятии флажка Use Range происходит сброс партиции на начальную.
Аддон PartitionRender v.0.0.3
Аддон PartitionRender v.0.0.3

Аддон PartitionRender 0.0.2

Обновление аддона PartitionRender до версии 0.0.2

  • Добавлена возможность задавать для рендера только ограниченный ряд партиций.
  • Исправлена ошибка, проявляющаяся при запуске при несохраненном blender-файле. Если blender-файл не сохранен, все временные файлы сохраняются в системной временной директории.
Аддон PartitionRender 0.0.2
Аддон PartitionRender 0.0.2

Аддон PartitionRender

Аддон Blender, позволяющий прерывать рендер и возобновлять его с прерванного места. Предназначен для тех, кто не имеет возможности оставить компьютер включенным для рендера на продолжительное время.

Например: рендер целого изображения занимает 12 часов. Но нет возможности не выключать компьютер все это время, однако возможно оставлять его включенным по 5 часов с перерывами. Если прервать рендер для выключения компьютера – при следующем запуске рендер начнется с начала и весь достигнутый прогресс будет потерян. Аддон PartitionRender позволяет разбивать картинку на несколько блоков – партиций, каждая из которых рендерится отдельно. Выбрав разделение по X и Y на 2 части, изображение будет разделено на 4 блока. Каждый из которых будет рендерится около 3 часов, что укладывается в отведенное на работу время. Каждая отрендеренная партиция сохраняется. При последующем (после выключения компьютера) запуске рендера, работа автоматически продолжится с той партиции, на которой произошел перерыв. После завершения рендера всех партиций, они автоматически собираются в композитинге в целое изображение.

Удаление всех нодов из окна композитинга через скрипт

Для того, чтобы очистить окно композитинга (удалить из него все ноды) с помощью скрипта, нужно выполнить следующий код:

 

Символьные ссылки, как средство повторного использования кода при разработке аддонов Blender

При разработке аддонов модули должны быть максимально абстрагированные. По очень простой причине – функционал, созданный для текущего аддона, вполне вероятно понадобиться и в следующем аддоне, и возможно даже не в одном. На этапе реализации уже готового аддона, проблема доступа к подобным модулям с общим функционалом решается просто – все необходимые модули включаются в единый пакет и распространяются вместе. Однако на этапе разработки подобные модули гораздо удобнее хранить отдельно, не связывая их с каким-то определенным пакетом, а при необходимости импортировать нужные модули в нужный аддон.

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

Python, в соответствии с правилами импорта пакетов, предоставляет возможность подключать модули следующими способами:

Создание многофайлового аддона

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

Blender на уровне Python поддерживает модульную систему компоновки кода, что позволяет разносить логические части аддона по отдельным файлам, после чего подключать их для использования там, где необходимо. Даже если вы ни разу не задумывались об использовании модулей, создавая скрипты или аддоны, вы с ними уже сталкивались – любой код, сохраненный в файл *.py, представляет из себя отдельный самостоятельный модуль. Просто ваш аддон состоял всего лишь из одного модуля. Сложные же аддоны могут состоять из нескольких десятков подключенных модулей.

Мультифайловый аддон
Мультифайловый аддон

Как отследить ошибку, если Blender закрывается вместе с консолью

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

Для того, чтобы все-таки понять, в каком месте произошел сбой, можно запустить Blender через интерпретатор командной строки cmd. В этом случае вывод лога Blender перенаправляется в окно cmd, которое, в случае закрытия самой программы из-за ошибок, не закрывается. При аварийном закрытии Blender все сообщения об ошибках остаются в окне cmd, где их можно просмотреть.

Запуск Blender из интерпретатора командной строки cmd
Запуск Blender из интерпретатора командной строки cmd

Для запуска Blender из интерпретатора командной строки нужно:

  1. Запустить сам интерпретатор (“Пуск” – Выполнить – cmd)
  2. В окне cmd ввести полный путь к установленному Blender. Например: C:\"Program Files"\blender-2.78a-windows64\blender.exe

Часть пути, если в нем есть пробелы, нужно заключить в двойные кавычки – как “Programm Files” в примере.

Аддон Accurate Render Border 0.0.2

Обновление аддона Accurate Render Border до версии 0.0.2.

Добавлен чекбокс Width/Height, переключающий установку рамки рендера из режима “координаты левого верхнего угла – координаты правого нижнего угла” в режим “координаты левого верхнего угла – ширина + высота рамки”.

Аддон Accurate Render Border 0.0.2.
Аддон Accurate Render Border 0.0.2.

Аддон Accurate Render Border

Аддон Blender, позволяющий устанавливать точные координаты для рамки рендера.

После установки аддона, в Т-панель добавляется дополнительная вкладка “ARB”, выбрав которую можно ввести координаты левого верхнего и правого нижнего углов для рамки рендера в пикселах и, нажатием на кнопку Set Accurate Render Border, установить рамку в соответствии с указанными значениями. Координаты устанавливаются относительно размеров готового рендера (Properties – Render – Dimensions – Resolution).

Задание координат рамки рендера

В Blender есть возможность ограничить область рендера – выделив с помощью специальной рамки часть будущего изображения и отметив чекбокс Border во вкладке Render – Dimensions окна Properties. Если такая рамка задана – отрендерена будет только ограниченная рамкой область изображения.

Рамка рендера
Рамка рендера

Для того, чтобы задать рамку рендера через Blender API есть два варинта: