В начале июня автору этих строк доводилось упоминать уже проект 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), но это несущественные детали, особенно если представить, сколько бы шёл рендер на собственном компьютере… Да чего там представлять, вот статистика:
Верхняя цветная полоса — это указатель на то, сколько бы сцена рендерилась на одном ядре современного процессора (15 дней). На Renderfarm.fi на всё ушло 6 часов. Что многое говорит о популярности проекта, надо заметить. При этом сказать, чтобы проект был перегружен и в очереди стояли толпы, нельзя.
…А вот отсутствие поддержки симуляции ткани — это проблема. Обсчитать все искажения (без рендера) — это целая история, особенно если сцена продолжительная. Но есть, кажется, способы обойти эту незадачу. О них позже, если получится.