Видео маппинг, видео перформансы

VJ Железо

Конфигурирование вычислительного кластера для распределенного рендеринга 3д сцен

Содержание материала

cluster

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

Направление, в котором создаются объемные объекты в трехмерном пространстве, объемные изображения и сцены называется трехмерная графика или 3D-графика. К этапам создания 3D-графики относятся: моделирование, тестурирование, риггинг (создание скелета), анимация, освещение, рендеринг (визуализация).

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

 

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

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

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

 

Этапы визуализации

Для получения отрендеренного изображения следует выполнить несколько предварительных этапов работы:

  • моделирование трехмерных объектов;
  • сборка сцены;
  • текстурирование;
  • настройка освещения;
  • настройка камеры и кадра;
  • настройка эффектов;
  • рендеринг.

Следует заранее выбрать программу для рендеринга, так как визуализация тесно связана с моделированием и текстурированием 3D объектов.

 

Виды визуализации

Различают два вида рендеринга – в реальном и в не реальном времени (пре-рендеринг). Рендеринг в реальном времени используется в компьютерных играх. Он имеет высокую скорость выполнения расчетов. Однако такой рендер требует мощное аппаратное обеспечение («железо»). Для рендера в реальном времени используются такие игровые движки: Unreal Development Kit (UDK), Cryengine, OptiX, Octane Render и другие.

Рендеринг в не реальном времени (пре-рендеринг) используется для получения фотореалистичных изображений с корректным наложением света и тени, добавлением цвета, детализацией мелких элементов и других эффектов. Главный фактор у такого рендеринга получить высокое качество изображения. Скорость просчета зависит от сложности сцены. Пре-рендеринг применяется в основном при создании видео, анимационных фильмов и др. Завершающий финальный рендер, предоставляющий итоговое изображение или видеоролик – финальный рендер.

 

Методы визуализации

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

Среди методов визуализации можно выделить такие как:

  • трассировка лучей (raytracing) - в этом методе из точки наблюдения объекта направляются множество лучей, которые определяют оттенок пикселя на экране, занимает значительное количество времени, но позволяет получать очень фотореалистичные изображения;
  • трассировка пути (path treacing) – принцип похожий на трассировку лучей, нос учетом физических законов; [3]
  • растеризация с методом сканирования строк (scanline, rasterization);
  • метод «бросания лучей»(ray casting) – сцена строится на основе замеров пересечения лучей c поверхностью для рендеринга;
  • глобальная иллюминация (radiosity) – используется математика конечных элементов;
  • метод фотонных карт (photon mapping) – пускает лучи-фотоны из источника света, которые переотражаются от объектов независимо от положения камеры на сцене.

Для получения финального изображения может использоваться несколько алгоритмов.

 

Категории визуализации по времени

Для получения отрендеренного изображения на одном компьютере тратится много времени и вычислительных ресурсов.

Высококачественное(high-quality) рендеринг – это получение фотореалистичного изображения высокого качества. Для получения такого изображения используют фотореалистичные материалы (шейдинг), источники освещение, отражения, преломления и т.д. Процесс такого рендеринга занимает большое количество времени и выполняется он только в конце работы со сценой (финальный рендеринг).

Работая со сценой можно сразу отслеживать максимально приближенный результат визуализации. Для этого используется возможность preview рендеринга (предварительной визуализации). Ее преимущество в том, что не тратится большое количество времени для получения результата. Однако качество изображения будет значительно ниже. Так, например, для получения отрендеренного высококачественного изображения (high-quality) разрешением 2500х1400 на железе i7 – 980 (4ГГц) 24гб ram. потратится около 2ч. 30мин. Превью (preview) на разрешении 1200х800 можно получить в течение 1-2 мин.

 

Проходы визуализации

Проходом визуализации (render pass) называется отрендеренное изображение определенного свойства сцены отдельно от других. Оно используется для композитинга.

Типы проходов рендеринга:

  • основной проход – итоговое полученное изображение. Оно включает в себя все проходы;
  • проход теней – изображение, включающее в себя тени, которые отбрасывают объекты;
  • проход освещения – визуализация нескольких проходов освещения;
  • проход глубины – изображение карты глубины;
  • проход свечения и др.

Проходы визуализации используются для экономии памяти. На этапе композитинга они позволяют легко вносить правки и изменять итоговый результат.

 

Планирование работы

  • сбор информации и материалов
  • изучение различных подходов к визуализации
  • установка необходимого программного обеспечения для работы системы
  • настройка сети
  • настройка общего сетевого диска
  • настройка программного обеспечения
  • подготовка трехмерной сцены к визуализации
  • визуализация на одной машине с разными конфигурациями машины
  • настройка системы для распределенного рендеринга Afanasy
  • распределенная визуализация с разными конфигурациями машины
  • получение результатов
  • анализ и оценка полученных результатов

Для работы будет использован система для распределенного рендеринга Afanasy, трехмерный программный пакет Autodesk Maya, программы для рендера конечных изображений в программе Maya – Redshift, Arnold, Mental Ray.

 

Распределенный рендеринг.

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

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

Рис. 1. Распределение работы между нодами

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

Рис. 2. Разбиение кадра на бакиты

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

 

Вычислительный кластер.

Вычислительный кластер – это группа узлов, которые переназначены для решения распределенных задач в параллельном режиме, с большой производительностью и используются как единый ресурс [4]. Каждый вычислительный узел – это компьютер или нода, которая имеет собственную оперативную память, операционную систему и т.д. Чем больше компьютеров находится в вычислительной сети, тем меньше времени требуется на визуализацию сцены.

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

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

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

В настоящее время кластеры имеют широкое применение по всему миру. С момента своего появления они сразу получили признание. В 1994 году в научном космическом центре NASA был создан первый кластер Beowulf, который состоял из 16 компьютеров на базе процессоров 486DX4 с тактовой частотой 100MHz. На каждом узле было 16 мегабайт оперативной памяти, была установлена операционная система Linux. Со временем появились такие вычислительные кластеры как:

  • AC3 Velocity Cluster
  • Thunder
  • NCSA NT Supercluster
  • Blue Gene/P
  • IBM Roadrunner
  • SGI Altix ICE 8200 и др.

Так же вычислительные кластеры имеются в различных университетах.

 

Вычислительный кластер КФУ.

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

  • управляющий узел
  • вычислительные узлы Big Data
  • узлы с GPU
  • система хранения данных
  • сеть коммуникации
  • программное обеспечение (IBM Platform HPC)
  • сервисная и транспортная сеть
  • узлы с архитектурой x86

Узлы с графическими процессорами представляют собой многопроцессорные сервера с модулями ускорения вычисления GPU NVIDIA. Используемый графический ускоритель NVIDIA Tesla K80. Для работы используются 19 нод. Кластер работает под управлением операционной системы Red Hat на базе Linux.

Рис. 3. Кластер

 

EventCatalog.ru — всё для организации мероприятий!