Преамбула

Пару лет назад мне пришлось столкнуться с задачей распределенного счета картинки на примере старой версии Pixar, потом
Maxwell. Приведенное ниже описание соотвествует моей работе
годичной давности ( т.е.март 2008); сейчас хотелось бы сделать рабочий pipeline для выгрузки файлов из
разных 3d-форматов в blend-формат для последующего счета на БФ, например, из 3dMax или Maya, и покспериментировать
с разными рендерерами (blender, yafaray, ...) с целью найти оптимальное качество. Для этой работы нужен как партнер 3d-художник
для постановки тестовых задач и оценки качества рендеринга. Со мной можно связаться по email alexshevlakov@yandex.ru

Блендер-фарм (БФ) и пример его реализации.

А. ПО для узла БФ

А.1 Linux ядро 2.6.22 для архитектуры x86_64 (скачать)
А.2 rootfs, содержащий необходимые библиотеки (скачать)

Б. ПО для сервера БФ

Файл-сервер позволяет узлам загрузить по PXE через tftp и dhcp ядро и rootfs, а также монтировать по NFS каталоги, где
а) лежат программы (blender_x86_64 для python2.5, drqueue) и библиотеки для них;
б) лежат исходные файлы с фреймами;
в) куда поступают с узлов готовые файлы с графикой.

Пример настройки: /etc/dhcpd.conf, /tftpboot/pxelinux.cfg

Монтируемый /opt: скачать)
+ 20MB собственно файл blender взять из дистрибутива для x86_84 с python 2.5
с сайта blender.org и добавить в /opt/blender.

С. Запуск на счет.

В качестве сервера tftp/dhcp/nfs использовали старый ноутбук (с быстрой сетевой картой),
а менеджер drqueue запускали на одном из узлов.
В качестве blender-узлов используются компьютеры из локальной сети с PXE NIC, CPU с архитектурой x86_64 и минимум 512 Mb RAM.

Все узлы загружают с ноутбука ядро, развертывают в RAM rootfs и монтируют /opt по NFS.

ноутбук - IP 10.0.0.199
4 узла - IP : 10.0.0.201-10.0.0.204 (master - 10.0.0.201)

С.1 Запуск менеджера
на 201-ом узле export DISPLAY=10.0.0.199:0 (чтобы видеть drqman на ноутбуке)
на узлах переменные env:
export DRQUEUE_ROOT=/opt/drqueue DRQUEUE_MASTER=10.0.0.201
на узлах 202-204 запустить /opt/drqueue/bin/slave
на узле 201 запустить drqman (м.б. нужна команда ldconfig), /opt/drqueue/bin/master и slave.
Если drqman сразу не увидел узел, перезапустить master на 201 и/или slave на узле.

C.3 Счет анимации (пример: 100 кадров db_jager.blend)

В drqman выбрать тип Blender, файл db_jager.blend и "Создать скрипт"

C.4 Счет фреймов через bucket rendering (фрейм: 825x1050 комната со стульями chairs.blend)
с использованием скрипта blender_bucket.py

для запуска задачи в drqman (с разбиением фрейма на 16 квадратов)
X_BLOCK=4 Y_BLOCK=4 /usr/bin/blender -b /opt/blender/chairs.blend -P /opt/blender/blender_bucket.py

Сшивка готовых кусков perl-скриптом convert.pl (см. /opt/blender/render_parts)

Готовые файлы-кусочки: анимация
(самолет
платье-softbody
и комната)