В начале июня автору этих строк доводилось упоминать уже проект Renderfarm.fi – распределённую сеть для рендеринга трёхмерных сцен, изготовленных в открытом пакете Blender 3D. Буквально на днях удалось убедиться на собственном опыте, насколько этот проект хорош… И узнать о его серьёзных недостатках.

Как уже рассказывалось, Renderfarm.fi – это распределённая сеть вычислений наподобие приснопамятной SETI@Home, которая функционирует на базе разработанной в университете Беркли платформе BOINC. Соответственно для использования Renderfarm.fi потребуется скачать себе клиент этой системы и сделать свой компьютер узлом распределённой «рендерфермы».

Естественно, клиент BOINC можно настраивать так, чтобы он работал, только когда ему разрешают (например, в периоды простоя компьютера), и занимал столько ресурсов, сколько выделят. Клиент BOINC можно вообще отключать и забывать про него, хотя устанавливаемый скринсейвер всё равно будет о нём напоминать.

Так вот: нужно было отрендерить долгую (3000 кадров) анимированную сцену с относительно большим количеством спецэффектов, которые очень здорово “жрут” процессор. Subsurface Scattering (подповерхностное распространение света) и, хуже того, множество отражений.

Четырёхъядерный Core I5 (мобильный) управлялся с каждым кадром примерно за 25 минут, а использовать GPU встроенный рендерер Blender не умеет – пока, по крайней мере.

На то, чтобы Renderfarm.fi “прожевал” загруженный в него файл, ушло примерно полтора дня. Большую часть времени, впрочем, он просто стоял в небольшой очереди на проверку администратором проекта.

Дело в том, что у использования Renderfarm.fi есть ряд ограничений. Во-первых, рендер не должен занимать меньше 50 секунд на кадр (в среднем) на пользовательском компьютере; минимальная длина анимации – 20 кадров; внешние данные (текстуры) должны быть интегрированы в основной файл; объём выделяемой памяти не может составлять больше 3 гигабайт.

Налагаются и другие ограничения: никаких, например, python-скриптов. Модификаторы, связанные с физикой – Collision, Cloth Simulation (столкновения, симуляция ткани), не поддерживаются, и это крайне печально. И хотя создатели проекта надеются со временем решить эти проблемы, тут многое упирается в особенности инфраструктуры.

Но в итоге автор этих строк получил то, что хотел:

В конце ролика выяснилась ошибка, связанная с собственной невнимательностью автора (резкий “световой” скачок в конце), да и свет получился дрожащим, во всяком случае в полноразмерном варианте, но в целом – игра свеч стоила.

Особенно нужно учитывать тот факт, что Renderfarm.fi управилась со всей сценой за шесть часов, согласно приведённой статистике. Возможно, не всем понравится, что результаты рендера выкладываются в общую галерею Renderfarm.fi под особой лицензией (Creative Commons), но это несущественные детали, особенно если представить, сколько бы шёл рендер на собственном компьютере… Да чего там представлять, вот статистика:

Статистика работы Renderfarm.fi.

Верхняя цветная полоса – это указатель на то, сколько бы сцена рендерилась на одном ядре современного процессора (15 дней). На Renderfarm.fi на всё ушло 6 часов. Что многое говорит о популярности проекта, надо заметить. При этом сказать, чтобы проект был перегружен и в очереди стояли толпы, нельзя.

…А вот отсутствие поддержки симуляции ткани – это проблема. Обсчитать все искажения (без рендера) – это целая история, особенно если сцена продолжительная. Но есть, кажется, способы обойти эту незадачу. О них позже, если получится.