вторник, 2 февраля 2016 г.

Знакомство с NVIDIA Iray+ for 3ds Max

Около 5 лет назад я опубликовал обзор системы визуализации NVIDIA Iray в пакете расширений SAP для Autodesk 3ds Max 2011. Проект интеграции Iray в 3ds Max развивался и сейчас представляет собой мощный и гибкий инструмент для визуализации трехмерных сцен и анимации с возможностью применения GPU от компании NVIDIA и технологии NVIDIA CUDA для ускорения вычислений в процессах визуализации. Он реализован на концепции заложенной разработчиками Autodesk, а это накладывает определенные ограничения на реализации ряда важных функций самого ядра визуализации Iray и внедрение новых технологий. Ядро системы визуализации Iray разрабатывается усилиями NVIDIA, а с недавних пор на его основе компания самостоятельно создает свои собственные расширения для таких пакетов как Autodesk 3ds Max, Autodesk Maya, Autodesk Revit, Rhinoceros и специальную редакцию NVIDIA Iray Server, используемую для распределенных вычислений.
С помощью данной статьи вы познакомитесь с двумя решениями предлагаемыми компанией NVIDIA своим клиентам; модулем расширения NVIDIA Iray+ for 3ds Max и серверным решением NVIDIA Iray Server. Вы узнаете об основных возможностях Iray+ for 3ds Max, а так же сможете сравнить с реализацией ядра Iray поставляемого с 3ds Max по умолчанию и познакомитесь с поддержкой распределённых вычислений реализуемых с помощью NVIDIA Iray Server.
Немного о вычислениях на GPU
Одной из важнейших особенностей современных центральных процессоров является поддержка нескольких ядер, которые определяются операционной системой как логические процессоры. В большинстве задач данный подход позволяет добиться хорошей производительности, например в распараллеливаемых процессах, таких как визуализация.
Центральные процессоры в первую очередь ориентированы на выполнение последовательных алгоритмов, которые далеко не всегда могут хорошо выполняться в нескольких параллельных потоках, а следовательно, без соответствующей оптимизации производительность приложений с последовательными алгоритмами может значительно снижаться.
Этот предел, можно сказать, стал началом новой эры; эры многоядерных процессоров и параллельных вычислений, доступных обычному пользователю. Современные процессоры используют от 2 до 18 ядер, но это ощутимо меньше, по сравнению с множеством, хоть и упрощенных, но не менее производительных ядер графических процессоров. В отличие от центральных процессоров (CPU), в современных графических ускорителях (GPU), в зависимости от модели, доступно более 512 вычислительных ядер, а с помощью специализированных API можно получить высокий прирост скорости вычислений в хорошо распараллеливаемых задачах.

Рис. 1. Общая схема архитектур современных CPU и GPU.
Архитектура графических процессоров изначально разрабатывалась для параллельных вычислений, чем и является растеризация в процессе визуализации трехмерной графики. Это сыграло важную роль в дальнейшем развитии технологий вычислений общего назначения на GPU. Хоть частота графического процессора и может быть значительно ниже частоты центрального процессора, производительность в хорошо распараллеливаемых алгоритмах и задачах возрастает за счет повышения количества вычислительных ядер.
Каждое новое поколение архитектур графических процессоров увеличивает свою производительность раз в два или три года. На данный момент наиболее производительной архитектурой графических ускорителей NVIDIA является архитектура Maxwell, а уже в 2016 году будет анонсирована архитектура следующего поколения, получившая имя Pascal.

Рис. 2. Производительность архитектур GPU NVIDIA в тесте SGEMM / W.
На сегодняшний момент доступно три основных API для разработки приложений с поддержкой вычислений на GPU. К ним относятся NVIDIA CUDA, OpenCL и DirectCompute. Каждый из них позволяет реализовать большинство параллельных алгоритмов и использовать вычислительные возможности графических процессоров для вычислений. Но наиболее функциональным является API NVIDIA CUDA позволяющее задействовать все возможности GPU линеек GeForce, Quadro и Tesla. Каждая новая версия NVIDIA CUDA предоставляет разработчикам все больше и больше возможностей для создания высокоэффективных приложений с поддержкой вычислений общего назначения на GPU.
Алгоритмы, используемые в процессе визуализации, превосходно распараллеливаются, а такие физические модели как волновая теория света превосходно поддаются математическому описанию и вычислениям на GPU. Такие инструменты визуализации, как NVIDIA Iray, NVIDIA mental ray, Chaos Group V-Ray RT, Otoy Octane Renderer, Cebas moskitoRender и др., поддерживают ускорение вычислений с помощью GPU и используют их возможности для повышения скорости визуализации.


Что такое NVIDIA Iray+ for 3ds Max?
Модуль расширения NVIDIA Iray+ является физически корректным средством визуализации с поддержкой материалов на основе стандарта NVIDIA Material Definition Language (NVIDIA MDL). Ядро визуализации позволяет создавать высококачественные изображения и анимационные последовательности с реалистичными материалами, камерами и освещением. Освещение в визуализируемом с помощью Iray+ изображении аналогично освещению из реального мира и опирается на то, как свет рассеивается и взаимодействует с материалами и объектами.
Инструментарий Iray+ предоставляет больше возможностей по сравнению с текущей реализацией Iray в Autodesk 3ds Max, включая новые возможности, такие как полная поддержка стандарта NVIDIA MDL, интерактивная визуализация, вычисления по сети и улучшенное решение для создания физически корректных и реалистичных материалов на основе концепции Layering Shaders.
Модуль Iray+ представлен двумя версиями Iray+ и Iray+ Interactive. В режиме Iray+ создаются изображения высокого качества, выполняется анализ освещенности, а режим Iray+ Interactive позволяет вам выполнять быструю навигацию по трехмерной сцене и управлять сценой в режиме реального времени без значительного снижения производительности. Возможности Iray+ Interactive базируются на функциях библиотеки трассировки луча NVIDIA OptiX.
Совместно с компанией Lightworks была разработана обширная библиотека высококачественных материалов и интуитивно понятный пользовательский интерфейс для их редактирования, который позволяет создавать необходимые материалы за считанные минуты. Фотометрические источники света и физически достоверная модель системы небосвода позволяют имитировать освещение сцены аналогично тому, как это происходит в реальном мире. Iray+ также поддерживает удаленную/распределенную визуализацию по сети, которая позволит вам использовать облачные решения с GPU и создавать собственные фермы для визуализации.
Система визуализации NVIDIA Iray+ может быть использована со всеми современными GPU линеек NVIDIA GeForce, NVIDIA Quadro и NVIDIA Tesla, поддерживающими NVIDIA CUDA. Разработчики рекомендуют использовать GPU на основе архитектур Fermi, Kepler и Maxwell. Наибольшей производительности в вычислениях и скорости визуализации можно достигнуть за счет применения GPU на основе архитектуры Maxwell, например NVIDIA Quadro M4000 или NVIDIA Quadro M6000.

Рис. 3. Интерфейс Autodesk 3ds Max 2016 с выбранным в качестве текущей системы визуализации NVIDIA Iray+.
Движок визуализации Iray+ опирается на фундаментальные концепции из реального мира, с физически-корректным освещением, фотографическими параметрами и материалами со структурой, присущей реальным веществам. Опираясь на данные концепции, разработчики постарались реализовать минимум параметров, необходимых для получения качественных изображений и анимации.
Режим визуализации Iray+ Interactive использует дополнительные алгоритмы аппроксимации, чтобы имитировать реалистичность при минимизации нежелательных шумов. Это дает вам бо́льшую скорость в рабочем процессе. Возможность использовать оба режима визуализации одновременно, означает, что вы можете быстро просмотреть сцену с помощью визуализации в режиме Iray+ Interactive на рабочей станции и в то же время выполнять финальную визуализацию удаленно в режиме Iray+, отправив задания на удаленный узел с NVIDIA Iray Server.
Система визуализации NVIDIA Iray+ for 3ds Max разработана, чтобы дополнять существующие рабочие процессы, а не переделывать их заново. Разработчики минимизировали интерфейс Iray+ до минимума и где это возможно. Добавили собственные объекты и параметры с четким представлением в знакомых форматах, используемых в 3ds Max.
Визуализатор разработан с учетом оптимального применения графических процессоров (GPU) для придания уверенности в том, что процесс визуализации будет быстрым и качественным, на столько, на сколько, это возможно. Полностью поддерживается визуализация, как на локальном компьютере, так и визуализация на удаленных узлах в сети, а так же может быть выполнена совместно с множеством инструментов для пакетной визуализации, например Autodesk Backburner или Thinkbox Software Deadline.
Система визуализации NVIDIA Iray+ для 3ds Max является одним из нескольких продуктов в линейке NVIDIA Iray, включая функции обмена данными и совместимости c другим программным обеспечением. Это означает, что материалы на основе MDL и другие элементы могут быть использованы на каждом этапе в процессе создания образа, от этапа прототипа, моделирования, и до производства. NVIDIA Iray+ для 3ds Max включает в себя инструменты преобразования материалов на основе шейдеров mental ray и Autodesk Materials Library, а так же инструменты преобразования сцен.
Система визуализации NVIDIA Iray используется специалистами во многих отраслях промышленности, включая автомобилестроение, ювелирные изделия, архитектуру, дизайн интерьера и многое другое. Обширная библиотека материалов обеспечивает основу для создания практически любого материала. Материалы на основе спецификаций NVIDIA MDL дают возможности создания и обмена любым материалом между системами визуализации, поддерживающими ее, например, будущий релиз V-Ray RT GPU for 3ds Max должен получить поддержку NVIDIA MDL.
Интерфейс NVIDIA Iray+
Глобальные параметры системы визуализации находятся в диалоговом окне Render Settings. С их помощью вы можете выполнить настройку времени визуализации и количества образцов выборки для получения желаемого качества, получаемого в процессе вычислений изображения. Параметры Iray+ сосредоточены в трех вкладках: Iray+, Settings и Render Elements.

Рис. 4. Параметры визуализатора Iray+.
Вкладка Iray+ позволяет выполнить настройку времени визуализации, количества образцов выборки, определить интервал обновления изображения в буфере кадра (Rendered Frame Window) и выбрать метод выборки, который будет использоваться в процессе визуализации.

Рис. 5. Пример визуализации сцены интерьера с различным количеством образцов выборки. Слева 50 образцов на кадр, слева 2500 образцов на кадр.

Ядро системы визуализации Iray+ предоставляет три основных метода выборки образцов. Первый – базовый, используется по умолчанию и обеспечивает приемлемое качество и скорость для тестовых визуализаций. Второй режим, - Caustic Sampler. В данном режиме ядро визуализации выполняет вычисление эффектов прозрачных сред и каустики, что позволяет получить более реалистичный результат и лучшее качество, но при этом, время визуализации будет увеличиваться. В настоящий момент с помощью данного режима выборки может быть ускорено вычисление прямой каустики (Direct Caustics). Непрямая каустика (Indirect Caustics (например, отражения каустического света)) будет вычисляться с прежней скоростью. Третий режим, - Architectural Sampler. Данный режим разработан для визуализации сцен интерьеров или сцен с большим количеством непрямых отражений света или отражений света с учетом смешивания цветов, в процессе визуализации данный режим использует меньше итераций для получения приемного результата. Тем не менее, вполне вероятно, что процесс визуализации замедлится в отношении числа итераций выполненных для каждого кадра.

Рис. 6. Пример визуализации сцены интерьера с применением различных методов и алгоритмов выборки: Basic Sampler, Caustic Sampler и Architectural Sampler.
Если же выбран режим интерактивной визуализации в ActiveShade (Iray+ Interactive), пользователю доступны несколько специальных режимов выборки, оптимизированных для быстрой визуализации и обновления визуализируемого изображения. Контроль глубины трассировки лучей (Ray Depth) увеличивает или уменьшает глубину прохождения лучей в сцене. Низкие значения уменьшают качество визуализируемого изображения, но при этом, увеличивают скорость визуализации.
Благодаря режиму аппроксимации отраженного света (Approximate Bounced Light) вы можете добавить аппроксимацию непрямого освещения в сцене. В то же время благодаря режиму аппроксимации площадных источников света (Approximate Area Lights) можно выполнить оптимизацию за счет замены площадных источников света на более простые в плане вычислений точечные источники (point lights).
Вкладка Settings предоставляет возможность тонкой настройки Iray+ для визуализации сцены. С помощью этой вкладки пользователь может выполнить настройку тонов, температуру, интенсивность бликов, тени, насыщенность и экспозицию визуализируемого изображения.

Рис. 7. Пример визуализации изображений без коррекции тонов, с коррекцией тонов в Adobe Photoshop и с активной в глобальных параметрах визуализатора коррекцией тонов.

Рис. 8. Пример применения различных профилей баланса белого при активном режиме Tone Mapping.
Одним из важных достоинств Iray+, по сравнению с реализацией iray в 3ds Max, является поддержка распределенных вычислений по сети. Это позволяет использовать доступные в локальной сети компьютеры с Iray Server или комплексное решение в виде NVIDIA Quadro VCA.

Рис. 9. Диалоговые окна Queue Server и Streaming Server используемые для настройки подключения к удаленным вычислительным узлам.
Используя компьютеры в локальной сети, вы можете вывести вычисления с рабочей станции на другой свободный компьютер или на сервер. Такой подход может быть использован для работы художников над освещением в сцене и интерактивной визуализации. Используя Iray Server, вы можете выполнять отправку заданий в очередь на визуализацию. Это позволяет выполнять визуализацию нескольких видов и сцен с различным освещением без загрузки основной рабочей станции пользователя.

Рис. 10. Очередь заданий на удаленном компьютере с Iray Server.
Если же дизайнер ограничен только локальными ресурсами, то Iray+ будет работать в локальном режиме, а в специальном свитке Resources будут отображены все доступные ресурсы локальной системы. Когда в рабочей станции установлено несколько графических ускорителей, они будут отображены в списке доступных ресурсов. Тот графический процессор, который используется операционной системой, будет отмечен надписью "Used by Windows". Я рекомендую убирать флажок с такого GPU, чтобы обеспечить максимальную производительность и стабильность в работе 3ds Max с Iray+.
Совет. Для понимания конфигурации multi-GPU систем и оптимальной настройки драйвера NVIDIA для работы с GPU-accelerated визуализаторами рекомендую прочитать пост "Особенности настройки multi gpu системы для V-Ray 3.0 for Maya" доступный в моем блоге. В данном посте я описал процесс настройки нескольких GPU для визуализации с V-Ray RT GPU, но принципы, описываемые в нем, применимы к NVIDIA Iray+ и другим системам визуализации с GPU ускорением.
Для визуализации сцен с учетом проходов можно использовать возможности вкладки Render Elements. При использовании формата OpenEXR появляется возможность сохранять данные отдельных элементов в виде каналов изображения и впоследствии использовать их на этапе композитинга и пост-обработки.
В отличие от mental ray for 3ds Max, помимо вывода отдельных элементов (проходов) изображения, Iray+ позволяет использовать возможности новой парадигмы на основе Light Path Expressions. Каждый из элементов изображения, записанный в виде канала файла OpenEXR, определяется с помощью несложного уравнения, которое может быть использовано для любой сцены и любого объекта.

Рис. 11. Пример визуализации сцены с интерьером и вывода нескольких элементов.
Хочется заметить, что возможности Iray+ по выводу отдельных проходов значительно лучше и позволяет выводить все необходимые данные для последующего редактирования и создания композиции финального образа.
Разработка материалов в Iray+ и библиотека vMaterials
В отличие от NVIDIA Iray входящего в поставку 3ds Max, NVIDIA Iray+ предоставляет пользователям больше возможностей для разработки материалов на основе родных шейдеров и новейшего языка NVIDIA Material Definition Language (NVIDIA MDL).
Пользователи, использующие NVIDIA iray включенный в поставку 3ds Max, знают, что он поддерживает возможности стандартного шейдера Arch&Design, а также для него разрабатывается отдельный шейдер iray Material, доступный на форуме NVIDIA ARC. Но разработчики Iray+ пошли дальше и реализовали поддержку новой парадигмы разработки материалов на основе многослойных шейдеров.

Рис. 12. Шейдеры материалов Iray+ доступные в Slate Material Editor.
Пользователю предоставляется три базовых монолитных шейдера, имитирующие основные типы материалов. Каждый из шейдеров содержит базовый слой (Base), слой влияния на геометрию (Geometry) и инструменты для работы с шейдерами, разработанными с помощью языка NVIDIA MDL. Представленная ниже блок-схема основных элементов шейдера Iray+ Material демонстрирует заложенную в них концепцию множества слоев.

Рис. 13. Блок-схема шейдера материала Iray+ Material.
Каждый из слоев задает цвет, отражения, прозрачность и рельефность. Вес слоя определяет его вклад в материал и воздействие на него. Так, параметр Weight равный 0.0 исключит слой полностью, а если данному параметру присвоить значение 1.0, слой полностью будет перекрывать нижележащий слой. Большинство материалов могут быть созданы на основе базового слоя (Base), для этого были специально разработаны шаблоны, на основе которых пользователь может начать создавать свой материал.

Рис. 14. Пример материала содержащего три слоя и его визуализация с помощью Iray+.
Вес слоя может быть определен не только числовым значением, но так же может определяться с помощью процедурной или растровой текстурной карты. На рисунке 14 приведен пример визуализации объекта с многослойным материалом. Каждый слой обладает своим вкладом в общий материал и контролируется с помощью значений и текстурными картами, связанными с параметром Weight.
Если вы планируете разрабатывать свои собственные материалы с применением языка NVIDIA Material Definition Language, NVIDIA Iray+ предоставляет удобные инструменты для управления библиотеками материалов MDL и их применения на основе Iray+ Material.
Когда вы импортируете файл *.mdl, параметры материала будут преобразованы в элементы интерфейса редактора материалов. Это позволяет разрабатывать собственные материалы с множеством параметров и реализовывать их интерфейс за счет простых функций языка MDL.

Рис. 15. Глобальные параметры путей к материалам MDL и пример интерпретации функций параметров в интерфейсе редактора материалов.
Рекомендуется заранее прорабатывать структуру директорий библиотек шейдеров с файлами *.mdl и текстурами. Для того чтобы NVIDIA Iray+ определял желаемую директорию и находил все необходимые данные, необходимо задать пути к директориям в глобальных параметрах системы визуализации, а в редакторе материалов выбрать файл *.mdl и импортировать его с помощью шейдера Iray+ Material.
Функции импорта и экспорта материалов *.mdl позволяют сохранять разработанный вами шейдер Iray+ Material в универсальном формате, что позволяет впоследствии использовать материал повторно или в другом приложении, у которого есть поддержка NVIDIA Iray (например, Maya, Rhino, Revit или mental ray Standalone).

Выше приведен листинг простого многослойного материала разработанного с помощью языка NVIDIA MDL. Базовый слой данного материала для диффузного цвета использует текстурную карту, выше находится слой управляемый определением значения веса, на самом верху находится третий слой, определяющий отражающие свойства. Данный шейдер был импортирован с помощью функций импорта MDL доступной в шейдере Iray+ Material, в процессе визуализации сцены был получен представленный на рисунке 16 результат.

Рис. 16. Пример визуализации материала, разработанного с помощью языка NVIDIA MDL.
Если в файле *.mdl представлено несколько шейдеров, их можно выбирать из раскрывающегося списка в интерфейсе Iray+ Material. Это позволяет создавать комплексные материалы с большой функциональностью, но при этом обходиться минимумом файлов и избегать процессов компиляции и адаптации под ядро визуализации.
Совет. Для знакомства с языком NVIDIA MDL и его базовыми функциями, вы можете загрузить мою презентацию "Введение в NVIDIA Material Definition Language: разработка шейдеров для mental ray и iray" с международной конференции CG EVENT 2015, а так же презентацию "Sharing Physically Based Materials Between Renderers with MDL" с SIGGRAPH 2015. Так же я рекомендую познакомиться с гидом NVIDIA MDL Handbook, предоставляющим введение в концепцию и методы разработки материалов на основе MDL.
Для обеспечения большей производительности художников и дизайнеров, разработчики NVIDIA создали целую библиотеку материалов с применением языка NVIDIA MDL. Библиотека vMaterials доступна бесплатно и может быть использована с любой из реализаций NVIDIA Iray и NVIDIA mental ray, так как вы можете просто импортировать файлы *.mdl и выполнять визуализацию.

Рис. 17. Пример визуализации нескольких материалов из библиотеки vMaterials.
Одним из важных достоинств шейдера Iray+ Material является возможность комбинации как материалов на основе языка NVIDIA MDL, так и родных для этого шейдера элементов, таких как отдельные слои. Таким образом, вы можете создавать сколь-угодно сложный материал, тем самым имитируя различные свойства веществ, как реальных, так и вымышленных.
Совет. Если вы используете стандартную реализацию MDL Material в Autodesk 3ds Max 2016 и Autodesk Maya 2016, можно установить библиотеку vMaterials и использовать входящие в нее материалы вместе с NVIDIA iray и NVIDIA mental ray входящими в поставку 3D редакторов.
Если вы раньше работали с mental ray, Iray+ предоставляет инструмент для преобразования данных сцены 3ds Max из mental ray в Iray+. В основном меню 3ds Max необходимо выбрать Iray => Iray+ Scene Converter. И в появившемся диалоговом окне Iray+ Scene Converter вы сможете увидеть, какие элементы сцены можно/нельзя преобразовывать и что поддерживается для визуализации с помощью NVIDIA Iray+.

Рис. 18. Диалоговое окно Iray+ Scene Converter. С помощью данного окна можно выполнять преобразование данных в сцене 3ds Max.
Примечание. На текущий момент, NVIDIA Iray+ for 3ds Max поддерживает преобразование сцен созданных с применением только ядра визуализации NVIDIA mental ray.
Источники света и камеры
Как и любая другая система визуализации, представленная в виде отдельного модуля расширения для 3ds Max, новый NVIDIA Iray+ предоставляет возможности использовать собственные источники света, полноценно реализующие функционал ядра визуализации по освещению и теням. Задача NVIDIA Iray+ заключается в предоставлении пользователю удобных и простых инструментов для получения реалистичных изображений за короткое время. Чтобы не тратить время на дополнительные исследования и запоминание множества параметров разработчики реализовали источники света Iray+ включенные в отдельную категорию объектов 3ds Max.
После установки NVIDIA Iray+, в разделе объектов Lights будет доступен одноименный раздел, включающий в себя три типа объектов: Light, IBL и PhysSky. Источник света типа Light предоставляет возможность создавать направленные, площадные и объемные источники света, имитирующие физически достоверную модель распространения лучей света.

Рис. 19. Сцена с источниками света типа Iray+ Light и их свойства.
Так как NVIDIA Iray+ позволяет выполнять визуализацию реалистичного освещения в сцене с учетом распространения света на основе физически-корректной модели. Для визуализации освещения вы можете использовать не только базовые формы источников света, но также применять IES профили, которые могут быть загружены из сети Интернет с сайтов производителей реальных ламп, а также профили, созданные вручную или с помощью специальных программ.

Рис. 20. Пример визуализации сцены с различными настройками источников света Iray+ Light и применением профилей IES.
Такой подход позволяет дизайнерам и архитекторам использовать все возможности Iray+ для реализации своих идей и экспериментов с многочисленными типами светильников и ламп, придавая большего реализма в визуализируемые изображения.
Для реализации освещения от физически корректной модели небосвода и Солнца, NVIDIA Iray+ предоставляет специальный тип источника света, - PhysSky. Данный источник аналогичен стандартному источнику света Sun&Sky, доступному в 3ds Max, но оптимизирован под работу с Iray и заложенными в нем алгоритмами.

Рис. 21. Интерьер, в котором освещение смоделировано с помощью источника Iray+ PhysSky.
С помощью простых параметров источника света PhysSky вы можете настроить время и положение Солнца на небосводе, и также настроить формирование теней и эффекты атмосферы, например такие, как рассеивание света в частицах пыли или воды, находящейся в воздухе (дымка, туман, пыль).

Рис. 22. Интерьер, в котором освещение смоделировано с помощью источника Iray+ IBL.
Источник света Iray+ IBL позволяет дизайнерам использовать текстурные карты с высоким динамическим диапазоном (HDRI) для освещения трехмерных моделей и сцен. Метод освещения IBL позволяет формировать мягкое освещение и тени, придавая освещению цвет от текстурной карты. В отличие от многих классических систем визуализации, NVIDIA Iray+ позволяет практически сразу получить приемлемое освещение IBL и оценить его влияние на объекты в сцене.
Для реализации эффекта глубины резкости и размытия движения, NVIDIA Iray+ использует возможности стандартной камеры 3ds Max, в которую добавлен новый тип многопроходного эффекта Depth Of Field (Iray+).

Рис. 23. Пример визуализации эффекта глубины резкости.
В отличие от классических систем визуализации, таких как NVIDIA mental ray, эффект глубины резкости в NVIDIA Iray+ вычисляется значительно быстрее за счет того, что все изображение строится целиком, а не за счет отдельных блоков, а алгоритм трассировки лучей вычисляет их смещение начиная с указанного расстояния. Для получения качественного результата рекомендуется использовать направленную камеру с контрольной точкой, от которой будет вычисляться эффект.
Эффект размытия движения в NVIDIA Iray+ реализуется стандартными инструментами камеры 3ds Max. Для этого достаточно выбрать в качестве многопроходного эффекта, эффект Motion Blur и выполнить его настройку. Если активен режим визуализации ActiveShade, все изменения можно наблюдать в режиме реального времени.
Анализ освещения с помощью NVIDIA Iray+
Для получения реалистичного освещения в сцене и для проведения исследований освещенности интерьеров или экстерьеров, система визуализации NVIDIA Iray+ предоставляет дизайнерам возможность выполнения визуального анализа освещения и его цветового представления.
Данная функция доступна, когда в режиме ActiveShade выбрано ядро Iray+. В диалоговом окне буфера кадров и расположенной ниже него панели инструментов, можно поставить специальный флажок Enable Analysis.
После активации режима анализа освещения появится несколько дополнительных инструментов, позволяющих настроить представление данных анализа и значения, в пределах которых будет выполнено цветовое представление модели освещения сцены.

Рис. 24. Пример визуализации модели интерьера с активным анализом освещения.
Если вы планируете использовать различные источники света и сделать наглядное представление их влияния на освещение в сцене (интерьере или экстерьере), то функциональности Lighting Analysis будет вполне достаточно. А полученные числовые данные об интенсивности освещения можно представить простой таблицей и диаграммами.
Распределенная визуализация с помощью NVIDIA Iray Server
Процесс визуализации требователен к производительности компьютеров. Любая современная система визуализации требует от рабочей станции CG-художника большой производительности и наличия нескольких CPU и GPU. Платформа Iray от компании NVIDIA не является исключением и рассматриваемое в данном обзоре решение предоставляет не только возможности для выполнения вычислений на локальной системе, а также может быть использовано вместе с серверным вариантом NVIDIA Iray. Это позволяет избежать зависимостей от конкретного программного обеспечения и выполнять вычисления с помощью серверной редакции ядра визуализации Iray.
Все иллюстрации в данной статье визуализировались на нескольких компьютерах с NVIDIA Iray Server, это позволило избежать излишней нагрузки на основную рабочую станцию и даже использовать мобильную рабочую станцию небольшой производительности.

Рис. 25. Общая диаграмма применения NVIDIA Iray Server.
Серверная редакция NVIDIA Iray Server может быть развернута на любом компьютере с операционными системами Windows и Linux. Сервер работает в качестве консольного приложения или службы, и управляется с помощью простого Web интерфейса. На рабочие станции пользователей может быть установлен NVIDIA Iray Plug-in для 3ds Max, Maya, Revit и Rhino, а с помощью инструментов отправки заданий или удаленной визуализации, все вычисления будут выполняться с помощью NVIDIA Iray Server установленным на одном или нескольких узлах.
Такой подход позволяет увеличить производительность вычислений и скорость работы дизайнеров, а так же обеспечивает возможность применения серверов с NVIDIA Iray Server в дата-центрах с серверами виртуализации. Где дизайнеры работают не с физическими рабочими станциями, а на виртуализированных рабочих станциях с поддержкой VDI и NVIDIA GRID.

Рис. 26. Отправка задания в очередь на Iray Server из Iray+ for 3ds Max.
В NVIDIA Iray+ for 3ds Max есть специальный инструмент Queue Server, который позволяет отправить сцену из 3ds Max в очередь на визуализацию с помощью NVIDIA Iray Server. Данный инструмент позволяет выполнять подключение к серверу, указывать имя пользователя и пароль, задавать имя заданию и выходному файлу, а также настраивать формат данных и цвета. Если вычисления выполняются на аппаратно-программном решении NVIDIA Quadro VCA можно установить специальный флажок, что позволит использовать специальные настройки потока данных доступные в NVIDIA Quadro VCA.
После установки и развертывания NVIDIA Iray Server вам станет доступна возможность выполнить его настройку с помощью простого и понятного Web интерфейса. Данный интерфейс позволяет управлять заданиями в очереди на визуализацию, обеспечивает контроль пользователями и аппаратными ресурсами.

Рис. 27. Страница входа в систему управления NVIDIA Iray Server.
Достоинством NVIDIA Iray Server является возможность создания нескольких пользователей для отправки заданий в очередь визуализации и возможность гибкого управления заданиями через простой интерфейс. Например, можно создать пользователя для каждого из дизайнеров и предоставить им возможность отправки заданий. Задания пользователя Revit могут быть назначены одному пользователю, а задания пользователя 3ds Max, другому. Администратор может переназначать задания в очереди и расставлять их в зависимости от важности. Каждый пользователь может определить приоритет задания. Чем выше приоритет, тем быстрее будет выполнено задание в очереди.

Рис. 28. Страницы Queue и Results с текущими и выполненными заданиями очереди визуализации.
Любому пользователю может быть назначена роль администратора, но важно помнить, что несколько администраторов могут по своему усмотрению распределять задания. Для обеспечения централизованного управления лучше обойтись одним, максимум двумя администраторами.

Рис. 29. Параметры и ресурсы NVIDIA Iray Server.
Отдельного внимания заслуживает управление аппаратными ресурсами. На данный момент никого не удивить наличием нескольких CPU и GPU в одной системе. А вот для того чтобы распределить ресурсы между различными приложениями и задачами необходим удобный и понятный инструмент. С помощью Web-интерфейса NVIDIA Iray Server вы можете выбрать, какой из установленных в рабочей станции или сервере графических процессоров будет выполнять вычисления, использовать CPU или нет, какой объем оперативной памяти и графической памяти доступен в системе и многое другое.
Если используется аппаратно-программное решение NVIDIA Quadro VCA, администратор может задать подключение к нему и выполнять перенаправление заданий очереди на сервер VCA. Что позволит использовать богатые вычислительные возможности 8 GPU NVIDIA Quadro M6000.
Все результаты визуализации могут быть загружены пользователем на локальный компьютер в виде архивов или отдельных файлов. Стоит отметить, что в процессе визуализации изображения обновляются, можно проследить изменения качества получаемого изображения и принять решение о том, удовлетворяет результат или нет.
Если необходимо быстро обновить задание на визуализацию и сделать новый вариант изображения. Можно воспользоваться простой функцией копирования задания очереди. Это значительно проще и быстрее, чем открывать сложную полноценную сцену в 3D редакторе и создавать новое задание.

Рис. 30. Пример создания копии задания очереди.
Каждой новой копии вы можете присвоить уникальное имя, приоритет, формат графического файла, разрешение и выбрать типы буферов кадра, для хранения информации об отдельных проходах. Если вы планируете использовать Light Path Expressions, диалог копирования задания позволяет добавить новые выражения, а так же определить их имя и тип файла.
В процессе подготовки иллюстраций к статье были использованы два компьютера с NVIDIA Iray Server. Финальные изображения визуализировались на компьютере с двумя GPU, а предварительные тестовые визуализации проводились в режиме ActiveShade с применением потокового режима визуализации NVIDIA Iray Server на другой удаленной системе.
Все компьютеры или серверы с NVIDIA Iray Server в единой локальной сети могут быть объединены в единый вычислительный кластер, что позволяет создавать масштабируемые системы для повышения производительности в визуализации образов. Когда несколько узлов с NVIDIA Iray Server объединены, в разделе ресурсов (Resources) будет отображена информация о том, что Iray Server работает в режиме кластера.
Тестирование производительности GPU в визуализации с NVIDIA Iray Server
В процессе исследования возможностей NVIDIA Iray Server я провел ряд тестов производительности графических ускорителей различных моделей. Тестирование проводилось на основе рабочих станций с графическими ускорителями NVIDIA Quadro и процессорами Intel Xeon.
Тест заключается в определении максимального количества итераций (Iterations) вычисляемых с помощью CPU или GPU в процессе визуализации в заданный промежуток времени (продолжительность). Каждому тесту было отведено по 120 минут (7200 секунд), а максимальное количество итераций равно 20000. Чем больше итераций может выполнить элемент вычислительной системы, тем более производительным он является. Задание теста отправлялось с отдельной системы представленной мобильной рабочей станцией с Autodesk 3ds Max 2016 и NVIDIA Iray+ for 3ds Max.
Так как участвующие в первом и втором тестировании системы значительно отличаются по техническим характеристикам, я решил сконцентрировать максимум внимания на производительности графических процессоров и определить ее прирост в зависимости от архитектуры.
В тесте принимали участие три рабочих станции, 4 графических ускорителя линейки NVIDIA Quadro производства компании PNY Technologies и 1 графический ускоритель производства компании HP на основе мобильного графического чипа NVIDIA Quadro K3100M. Для чистоты эксперимента в тестах GPU я отключал вычисления на CPU в глобальных параметрах ресурсов Iray Server. Это позволило получить чистый результат в скорости вычислений исключительно средствами графических ускорителей. Перед тем как мы рассмотрим результат тестирования производительности GPU в визуализации с помощью NVIDIA Iray Server, рекомендую познакомиться с характеристиками рабочих станций принявших участие в первом тесте, посвященном GPU на архитектуре NVIDIA Kepler:

Это практически идентичные по своим характеристикам рабочие станции, но с несколькими различиями. В рабочей станции HP Z1 Gen2 используется процессор Intel Xeon E3 третьего поколения, а в рабочей станции FORSITE 350D процессоре Intel Xeon E3 второго поколения. В рабочей станции HP Z1 Gen2 установлено 32 Гб оперативной памяти и SSD накопитель большего объема по сравнению с соперником.
Рабочая станция от FORSITE обладает важным козырем, двумя GPU. Оба GPU могут быть использованы для вычислений в NVIDIA Iray Server и в любом другом CUDA приложении, это может обеспечить более высокую производительность системы. А по условиям нашего теста, чем больше итераций будет выполнено, тем производительнее система и используемые в ней компоненты.

Рис. 31. Результат тестирования CPU Intel Xeon E3 и GPU NVIDIA Quadro K.
Первое на что мы обратили внимание, – производительность центрального процессора. Третье поколение Intel Xeon E3 продемонстрировало достаточно хорошую производительность и обошло своего предшественника на 200 итераций. Это было достигнуто за счет более современной архитектуры процессора, на момент выпуска данной модели, и повышенной частоты. Но ядро визуализации NVIDIA Iray разрабатывается с учетом вычислений на GPU, поэтому мы уделили особое внимание производительности именно графических ускорителей. На приведенной выше диаграмме GPU выставлены по результатам тестирования и производительности.
Первый тест целиком посвящен графическим ускорителям на основе GPU архитектуры NVIDIA Kepler. Профессиональные графические ускорители PNY NVIDIA Quadro K4000 и HP NVIDIA Quadro K3100M практически идентичны по техническим характеристикам, это позволило достигнуть идентичного результата в проведенных тестах. Разница в 47 итераций незначительна и на итоговом результате визуализации это не так заметно. Но используя возможности Multi-GPU системы можно значительно увеличить производительность вычислений и добиться большей производительности. Так, при использовании двух GPU в системе от FORSITE в процессе тестирования удалось достичь лучшего качества и большей скорости визуализации по сравнению с системой с одним GPU.
Но развитие технологий не стоит на месте. Я обратился к своим старым партнерам из компании FORSITE для проведения второго теста, но на этот раз тестированию подверглись графические ускорители новейшего поколения, на основе архитектуры NVIDIA Maxwell, производства компании PNY Technologies.

Во втором тесте была использована рабочая станция с процессором Intel Xeon E5 третьего поколения, 32 Гб памяти и двумя графическими ускорителями PNY NVIDIA Quadro M5000 и PNY NVIDIA Quadro M6000. На данный момент это самые производительные профессиональные GPU компании NVIDIA обладающие наибольшим объемом графической памяти GDDR5. Последние версии ядра визуализации NVIDIA Iray оптимизированы для вычислений на графических ускорителях линеек NVIDIA Quadro и NVIDIA Tesla, а также оптимизированы для графических чипов архитектуры NVIDIA Maxwell.

Рис. 32. Результат тестирования CPU Intel Xeon E5 и GPU NVIDIA Quadro M.
Результаты второго теста были поразительны. Такие задачи визуализации как трассировка лучей, отражение/смешивание света и визуализация глянцевых отражений выполнялась гораздо быстрее, а это позволило значительно повысить качество изображений теста. По сравнению с тестированием систем в первом тесте. Система во втором тесте продемонстрировала высокую скорость вычислений множества итераций, превосходя результаты предыдущего теста минимум в 2 раза. И это только один графический ускоритель. Наибольшей производительности удалось достичь с помощью применения двух графических ускорителей. Благодаря их совместной работе было достигнуто максимальное количество итераций, превышающее 12 тысяч, из условных 20 тысяч. Подчеркну, что все вычисления выполнялись исключительно силами GPU, функция вычислений на CPU была отключена в глобальных параметрах NVIDIA Iray Server.
Графические ускорители на основе архитектуры NVIDIA Maxwell продемонстрировали очень высокую производительность в вычислениях общего назначения, а также высокую эффективность в балансе нагрузки на ресурсы оборудования в процессе вычислений. В то время как в процессе выполнения CUDA приложений, GPU предыдущих поколений использовали максимум производительности чипа (100%), новая архитектура и новые версии драйвера позволяют балансировать производительность в зависимости от нагрузки. Например, в процессе визуализации сцен с множеством итераций GPU PNY NVIDIA Quadro M6000 работал в диапазоне от 80 до 98%. А это существенно помогает в экономии энергии и продлевает жизненный цикл оборудования в целом.
По результатам проведенного тестирования я могу с большой уверенностью рекомендовать обновление графических ускорителей на современные модели. Если вы использовали GPU на основе архитектуры NVIDIA Fermi или одни из первых моделей на основе NVIDIA Kepler, можете смело присматриваться к современным GPU на основе архитектуры NVIDIA Maxwell. Можно заметить невооруженным взглядом значительный прирост производительности, как в графических вычислениях, так и в вычислениях общего назначения. Притом же это позволит использовать приложения, разработанные с учетом возможностей API NVIDIA CUDA версии 7, оптимизированного под последнюю архитектуру GPU.
Лицензирование NVIDIA Iray+ for 3ds Max
Система визуализации NVIDIA Iray+ лицензируется по модели подписки и доступна для приобретения, как частным пользователям, так и компаниям. При этом вы можете приобрести NVIDIA Iray+ напрямую с сайта корпорации NVIDIA. Разработчики оценивают NVIDIA Iray+ for 3ds Max в $295 USD/год. Что по карману большинству дизайнеров и специалистов по визуализации, желающим полностью использовать возможности платформы и решений от NVIDIA.
Лицензирование NVIDIA Iray Server
Серверная версия NVIDIA Iray находится в стадии интенсивной разработки и доступна по программе beta-тестирования для всех желающих. О доступности для коммерческого приобретения по электронной почте будет выслано специальное уведомление. С января 2016 года доступны версии для Windows и Linux. Вы можете установить на свои Render Nodes несколько экземпляров NVIIDA Iray Server и протестировать его совместно с NVIDIA Iray для 3ds Max, Maya, Revit и Rhino.
Итог
С момента появления архитектуры и технологии NVIDIA CUDA прошло почти десятилетие, за это время было создано множество разнообразных решений, как для вычислений физических моделей и научных исследований, так и для визуализации. Каждое новое поколение архитектур GPU повышает производительность в вычислениях и предоставляет множество возможностей для создания программного обеспечения для решения самых разнообразных задач.
Ядро визуализации NVIDIA Iray разрабатывается с 2008 года, и за прошедшее время было реализовано множество возможностей присущих высококачественному инструменту визуализации. А теперь он входит в портфель продуктов компании, куда включены все необходимые инструменты для профессионалов, позволяющие создавать высококачественную визуализацию образов и объединенные единой экосистемой. В список профессиональных решений входят такие инструменты, как GPU NVIDIA Quadro и NVIDIA Tesla, библиотеки и инструменты для разработчиков NVIDIA CUDA и NVIDIA OptiX, NVIDIA DesignWorks, NVIDIA Iray и NVIDIA mental ray.
Полезные ссылки:
NVIDIA Iray, NVIDIA mental ray, NVIDIA Material Definition Language, NVIDIA Quadro, NVIDIA Tesla, iray dev blog, Inside mental ray
Пост подготовлен при поддержке

Комментариев нет: