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

Визуализируй это! Современные тренды в рендеринге

Здравствуйте друзья.
Приглашаю вас на свой новый мастер-класс «Визуализируй это! Современные тренды в рендеринге» 18 февраля в 19:30. Для проведения мастер-класса я специально прилечу из Екатеринбурга, так что второй шанс пообщаться со мной «вживую» и узнать всё-всё-всё о визуализации сегодня вообще и в Maya в частности представится не скоро. :)
На CG-рынке существует множество инструментов и технологий визуализации синтетических изображений, но разработчики не останавливаются: быстрее, выше, сильнее. Хотите быть в курсе всего?
На мастер-классе Дмитрий познакомит вас с новыми направлениями развития инструментов визуализации. Вы узнаете:
  • какие новые возможности предлагают ведущие системы визуализации,
  • как применять аппаратные ресурсы для ускорения вычислений и каким это сделает рендеринг в недалёком будущем,
  • зачем применять для визуализации игровые движки и в чем прелесть этого решения,
  • что нового и интересного сейчас разрабатывают и продвигают ведущие компании-разработчики.
Вторая часть мастер-класса будет посвящена новым возможностям визуализации в Autodesk Maya. Maya всё время меняется: одним из важнейших изменений стало обновление процессов разработки освещения и материалов. Также теперь значительно упрощен процесс разработки графов шейдеров и добавлены новые возможности для разработки аппаратных шейдеров, визуализируемых с помощью Maya Hardware 2.0 и Viewport 2.0. Обо всём этом мы и поговорим.

В частности, вы узнаете, как изменения претерпевает система визуализации mental ray. Что придёт на смену классическим моделям затенения на основе комплексных шейдеров? Какие новые решения появляются на основе многослойных и многокомпонентных материалов? Как изменился процесс вывода множества отдельных элементов изображения и почему обновленная система управления цветом упрощает разработку образов и вывод в сторонние приложения для обработки и композитинга?

Масса информации, ответы на вопросы и живое общение. Визуализируйте это. Ждём!

Мероприятие бесплатное, но необходима предварительная регистрация.

вторник, 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 и используют их возможности для повышения скорости визуализации.