Cоздание кластера для 3D-рендеринга

Сергей Пахомов, Максим Афанасьев

 

В настоящее время существует множество программ для создания 3D-графики, но наиболее распространенными из них являются 3dMax и Maya — мощные пакеты для создания трехмерных иллюстраций. Большая часть времени при работе в таких программах, как правило, уходит на создание картинки, а если сцена сложная, то к времени собственно создания нужно еще добавить время на рендеринг.

Рендеринг — это процесс, в результате которого двумерная иллюстрация переходит в новое, трехмерное качество, наполняясь содержанием по всем трем плоскостям. Время, затрачиваемое на рендеринг конечного изображения, зависит прежде всего от производительности процессорной подсистемы графической станции. Если графическая станция обладает слабым процессором и малым объемом оперативной памяти, то, несомненно, на рендеринг даже несложной сцены уйдет несколько часов.

Большинство программ для создания 3D-анимации имеют несколько типов дополнительного программного обеспечения для рендеринга окончательного результата. Например, только для пакета Maya существует около десятка модулей для рендеринга, каждый из которых используется для создания определенных спецэффектов и выполняет работу с ними намного быстрее, чем другие подобные рендеры. Модули различаются по скорости работы, качеству и количеству настроек, хотя по сути выполняют одну и ту же функцию — создание конечного изображения.

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

Сейчас на рынке представлено множество специализированных графических станций для работы с 3D-графикой и анимацией, однако цены их непомерно высоки, и не каждая фирма может позволить себе приобрести такой специализированный компьютер. Впрочем, существуют и альтернативные решения для просчета 3D-сцен. Одним из них является создание кластера для рендеринга, состоящего из нескольких недорогих компьютеров, объединенных в одну локальную сеть. Принципиальная схема такого кластера показана на рис. 1.

 

Рис. 1. Принципиальная схема кластера для рендеринга

Рис. 1. Принципиальная схема кластера для рендеринга

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

Существует несколько специализированных утилит, позволяющих создать кластер для рендеринга трехмерного изображения. В данной статье рассмотрена наиболее удобная и простая в использовании утилита — Virtual Vertex Muster 4.41 (www.vvertex.com), которая поддерживает сетевой рендеринг для пакетов Maya, 3dMax, LightWave, Softimage и Adobe After Effects, но в первую очередь предназначена для просчета сцен, созданных в пакете Maya. Для каждой программы существуют две разновидности просчета — одним кадром или несколькими кадрами.

Компьютеры-клиенты, как уже отмечалось, могут иметь различную конфигурацию, при этом утилита Virtual Vertex Muster поддерживает работу с клиентами под управлением ОС Windows, Linux, Irix, а также Mac OS X.

При установке пакета Virtual Vertex Muster можно выбрать один из трех вариантов установки: сервер и клиент, только сервер, только клиент. В первом случае на компьютер будет установлен как сервер рендеринга (dispatcher service), так и клиентская часть (client service), благодаря чему на этом компьютере можно будет не только раздавать «работу» клиентам, но и выполнять ее. Стоит отметить, что для Windows-клиентов можно устанавливать утилиту как отдельное приложение или как сервис, который будет автоматически запускаться при старте операционной системы. Однако сразу после установки клиентской части Virtual Vertex Muster программа-клиент работать не будет, поскольку ей необходимо, чтобы на компьютере были установлены пакеты 3dMax, Maya или Lightwave, с помощью которых и будет производиться рендеринг. По умолчанию при установке клиентской части на компьютер устанавливается всего один сервис клиента, однако в дальнейшем на каждом из компьютеров-клиентов можно задавать несколько сервисов (node), что позволяет запускать несколько программ просчета. Это сделано в первую очередь для того, чтобы уравнять компьютеры-клиенты по мощности. Так, для слабого компьютера можно оставить один сервис, а для более мощных дополнительно установить один и более сервисов, что увеличит скорость рендеринга.

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

Пакет Virtual Vertex Muster также дает возможность задать приоритет каждому конкретному заданию по рендерингу, поскольку предназначен для просчета нескольких десятков сцен последовательно или одновременно.

Стоит отметить и возможность создания виртуальных подсетей (pool) из клиентов, благодаря чему одна виртуальная сеть может содержать в себе наиболее мощные компьютеры-клиенты, а другая — слабые, и именно ей в последующем будет поручена наименее сложная работа.

Для оценки прироста производительности сетевого кластера для рендеринга трехмерных сцен с помощью пакета Virtual Vertex Muster мы использовали сетевой стенд из восьми одинаковых компьютеров на базе процессора Intel Pentium 4 3,0 ГГц, оснащенных 512 Мбайт оперативной памяти DDR400. На всех компьютерах были установлены гигабитные сетевые адаптеры, а сеть разворачивалась на основе гигабитного коммутатора.

На семи компьютерах была установлена операционная система Windows XP Professional, а на восьмом ПК, выполняющем функцию сервера, — ОС Windows 2003 Server. При этом каждый компьютер имел всего один сервис клиента, который запускался в виде сервиса. Сервер рендеринга являлся также и клиентом. На всех компьютерах были установлены пакеты Maya 6.5 и 3dMax 7.0.

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

Результаты тестирования представлены на рис. 2 и 3. Как следует из результатов тестирования, и в пакете Maya 6.5, и в пакете 3dMax 7.0 время, затрачиваемое на рендеринг сцены, практически линейно убывает по мере увеличения числа узлов в кластере.

 

Рис. 2. Зависимость скорости рендеринга трехмерной сцены от количества узлов в кластере в пакете Maya 6.5

Рис. 2. Зависимость скорости рендеринга трехмерной сцены от количества узлов в кластере в пакете Maya 6.5

Рис. 3. Зависимость скорости рендеринга трехмерной сцены от количества узлов в кластере в пакете 3dMax 7.0

Рис. 3. Зависимость скорости рендеринга трехмерной сцены от количества узлов в кластере в пакете 3dMax 7.0

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

КомпьютерПресс 6'2005


Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует