Створення кластера для 3D рендерингу, Rendering, Софт, Матеріали сайту
В даний час існує безліч програм для створення 3D-графіки, але найпоширенішими з них є 3dMax та Maya – потужні пакети для створення тривимірних ілюстрацій. Більшість часу при роботі в таких програмах, як правило, йде на створення картинки, а якщо сцена складна, то до часу створення потрібно ще додати час на рендеринг
Більшість програм для створення 3D-анімації мають кілька типів додаткового програмного забезпечення для рендерингу остаточного результату. Наприклад, тільки для пакета Maya існує близько десятка модулів для рендерингу, кожен з яких використовується для створення певних спецефектів і виконує роботу з ними набагато швидше, ніж інші подібні рендеринги. Модулі розрізняються за швидкістю роботи, якістю та кількістю налаштувань, хоча по суті виконують ту саму функцію — створення кінцевого зображення.
Як показує практика, при створенні складних сцен з використанням безлічі спецефектів і текстур на рендеринг кінцевого зображення витрачається стільки ж часу, скільки і створення самої сцени. До того ж, при зміні освітлення або при приміщенні ще одного малого об'єкта доводиться перераховувати сцену заново, що забирає час, якого завжди не вистачає.
Зараз на ринку представлено безліч спеціалізованих графічних станцій для роботи з 3D-графікою та анімацією, проте ціни їх непомірно високі, і не кожна фірма може дозволити собі придбати такий спеціалізований комп'ютер. Втім, існують альтернативні рішення для прорахунку 3D-сцен. Одним із них є створення кластера для рендерингу, що складається з кількох недорогих комп'ютерів, об'єднаних в одну локальну мережу. Принципова схема такого кластера показано на рис. 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

Мал. 3. Залежність швидкості рендерингу тривимірної сцени від кількості вузлів у кластері у пакеті 3dMax 7.0
Наведені вище результати показують, що мережевий рендеринг часто залежить не від апаратної начинки клієнтів, а від їх кількості. Таке рішення задачі скорочення часу створення тривимірного зображення вигідно нелише малим, а й великим компаніям. Кластер дозволяє значно прискорити опрацювання сцен. При цьому це рішення є масштабованим і дозволяє постійно збільшувати потужність шляхом підключення додаткових комп'ютерів-клієнтів. Це рішення підходить і у разі встановлення програм мережного рендерингу на комп'ютери в офісі, тому що вночі ПК можуть займатися прорахунком сцен, а можливість завдання пріоритетів дозволяє використовувати мережевий рендеринг у фоновому режимі на комп'ютерах співробітників.