среда, 29 октября 2014 г.

Обзор V-Ray 3.0 для Autodesk Maya. Часть первая

Вот и состоялось долгожданное событие, компания Chaos Group выпустила на рынок свой второй по популярности продукт – V-Ray 3.0 for Maya, за развитием которого мы следили уже на протяжении последних шести месяцев. После продолжительной программы бета тестирования, пользователям стала доступна финальная версия. В серии обзоров, я рассмотрю основные возможности новой версии легендарного визуализатора.
Cloud Atlas © 2013 Warner Bros. | VFX by Method Studios
Наше знакомство стоит начать с изменений в лицензировании нового визуализатора, а затем мы перейдем непосредственно к технической составляющей.


Новая модель лицензии для V-Ray
До версии 3.0 визуализатор V-Ray как для 3ds Max, так и для Maya поставлялся с лицензией на 1 рабочую станцию (с интерфейсом пользователя и расширениями для пакетов компьютерной графики), и лицензией на 5 узлов для распределенной визуализации. Однако данный момент значительно повышал цену на визуализатор, особенно если пользователи использовали всего один или два компьютера.
Рис. 1. Пример новых расценок на лицензии для V-Ray 3.0 for Maya Workstation.
Начиная с третьей версии, пользователи могут выбирать из двух базовых вариантов:
  • Вариант с 1 плавающей лицензией на интерфейс и рабочее место, и 1 плавающей лицензией для распределенной визуализации. Это позволяет использовать 2 компьютера, где на одном работает CG художник, а второй может быть использован для со-ускорения вычислений.
  • Второй вариант включает в себя как 1 лицензию на интерфейс и на рабочее место, а так же включает 5 универсальных лицензий для распределённой визуализации. Данный вариант будет полезен небольшим студиям или архитектурным мастерским, где несколько CG художников и есть несколько рабочих станций или маленькая серверная из 5 узлов.
Цена соответственно различается. Вариант V-Ray 3.0 for Maya Workstation обойдется в $1040 USD, а вариант V-Ray 3.0 for Maya Workstation + 5 Universal V-Ray 3.0 Render Nodes обойдется в $2080 USD.
При этом вы вправе приобретать дополнительные Universal Render Nodes при необходимости. Одна лицензия на Universal Render Node обойдется в $350 USD, пять лицензий оцениваются в $1400 USD, а десять в $2500 USD.
Помимо этого, доступен вариант по модели подписки. Теперь вы можете лицензировать V-Ray на определенное время, например месяц или год. Но данный вариант в первую очередь разработан для студий, где количество рабочих мест 10 и более. Так, подписка на 10 лицензий для V-Ray 3.0 for Maya Workstation стоит $1900 USD/мес.
Например, в процессе написания данной статьи, я использовал 1 лицензию на рабочую станцию и несколько Universal Render Node (2 штуки). Это позволило обеспечить более высокую скорость визуализации изображений к статье.
Для того чтобы использовать несколько Render Nodes, на двух соседних компьютерах была установлена Standalone версия V-Ray for Maya и запущена служба для сетевой визуализации.
Рис. 2. Установка V-Ray Universal Render Node на соседнем компьютере в сети и настройка сервера лицензий.
Разузнав о новых типах лицензирования, мы можем прейти к знакомству с новыми возможностями V-Ray 3.0. Сразу хочется сделать ремарку о том, что во многом, V-Ray 3.0 for Maya схож с версией для 3ds Max и практически унифицирует рабочий процесс между различными пакетами.

Изменения в интерфейсе глобальных параметров V-Ray for Maya plug-in
Как и версия для 3ds Max, V-Ray 3.0 for Maya получил обновленный интерфейс глобальных параметров (диалоговое окно Render Settings). Помимо этого, новая версия обзавелась своей "полочкой" (Shelf), получившей имя V-Ray и содержащей гораздо больше функций, чем в предыдущих версиях.
Рис. 3. Пакет Autodesk Maya 2015 Service Pack 3 и основные элементы управления V-Ray 3.0.
Основной задачей, которую разработчики старались решить, является максимальное упрощение интерфейса настроек визуализатора и их адаптация под удовлетворяющий результат даже без дополнительной доводки параметров. Помимо этого, необходимо было реализовать быстрый доступ к множеству важных функций в инструментах V-Ray, что и подвигло их к созданию новой V-Ray Shelf.
Рис. 4. Полка V-Ray.
В диалоговом окне Render Settings количество параметров видимых пользователем значительно уменьшено. Так удалось уменьшить количество свитков и групп параметров, а также убрать редко используемые или сложные параметры, но если они необходимы, они будут отображены, как только будет активизирован соответствующий глобальный параметр.
Рис. 5. Параметры для настройки окружения (Environment) до активации, и после активации Override Environment.
Например, параметры для замены стандартного окружения, доступные в Render Settings будут скрыты, пока не активизирован флажок Override Environment, но как только он станет активен, данные параметры окажутся доступными пользователю, а их изменение не будет отличаться от предыдущих версий V-Ray for Maya.
Рис. 6. Параметры глобального освещения сгруппированные в специальном под-свитке.
Помимо этого, некоторые из параметров сгруппированы по отдельным под-свиткам. На рисунке выше представлен пример одного из таких под-свитков, где сосредоточены дополнительные параметры для глобальной настройки GI.
По умолчанию, в третьей версии для отображения визуализируемого изображения используется новая версия V-Ray Frame Buffer. С его помощью вы можете не только наблюдать за ходом визуализации, но и производить настройку цвета, тона и других свойств напрямую как в процессе визуализации, так и по завершению ее. Помимо этого, если у вас есть pdPlayer, вы можете использовать данный вьювер для более точной настройки и подготовки изображений к последующей пост-обработке в The Foundry NUKE и Adobe After Effects.
Рис. 7. Приложение V-Ray Frame Buffer в V-Ray 3.0 for Maya.
Итак, мы рассмотрели основные изменения в интерфейсе глобальных параметров V-Ray 3.0 for Maya. Теперь мы перейдем к непосредственному знакомству с новыми инструментами и изменениями третьей версии.

Увеличение производительности трассировки луча и процесса визуализации
Да, третья версия V-Ray подверглась настолько сильному обновлению, что это заметно даже невооруженным взглядом при визуализации. Конечно, заставить его работать очень долго не составит большого труда, но в большинстве случаев, реализованные в новой версии алгоритмы позволяют обеспечить высокую скорость для большинства задач. Повышение скорости визуализации будет крайне востребовано в области анимации, где Maya занимает одну из лидирующих позиций.
Я провел несколько исследований производительности нового V-Ray for Maya и mental ray for Maya, и вот что показал небольшой тест. Сцена, которую вы можете видеть на представленной ниже иллюстрации, была специально создана и настроена изначально под mental ray for Maya, затем, она была адаптирована под V-Ray for Maya. За рядом некоторых различий в результате, параметры шейдеров и глобальные параметры визуализатора были максимально приближены друг к другу.
Рис. 8. Пример двух изображений полученных с помощью mental ray for Maya 2015 и V-Ray 3.0 for Maya, а также время, затраченное на их визуализацию.
Так, каждому материалы для формирования глянцевых отражений было выставлено значение в 24 сэмпла, а для источников света с мягкими тенями, количество сэмплов для теней было выставлено равное 12. Плюс, формировалось освещение на основе IBL и HDR текстуры. В качестве сэмплера в mental ray выступал Unified Sampling, а в V-Ray использовался классический Adaptive Subdivision. Для GI в mental ray использован Final Gather, а в V-Ray выбраны алгоритмы по умолчанию – Irradiance map и Brute Force. Дополнительно, был использован вывод отдельных пассов (элементов) изображения. В итоге время, которое было затрачено на визуализацию в V-Ray, удивило. Всего 30 минут, в то время как mental ray потребовалось около 90 минут на визуализацию Full HD кадра (1920x1080).
Вообще в третьей версии движка, разработчики постарались оптимизировать такие элементы как сам движок трассировки луча, оптимизировать и повысить скорость вычислений в процессе освещения, затенения, глобального освещения (GI) и многих других. Как и в версии для 3ds Max, V-Ray 3.0 for Maya получил полноценную поддержку библиотеки Intel® Embree, что в ряде случаев позволяет еще повысить скорость визуализации.
Рис. 9. Пример визуализации сцены без применения библиотеки Intel® Embree и с ней.
На изображении выше приведен пример визуализации сцены из сравнения рендеров, но уже визуализируемой с помощью V-Ray без активизированного Intel® Embree и с таковым. Полноценный Full HD кадр без Embree визуализировался на протяжении 14 минут, в тоже время, после активизации Embree, кадр визуализировался на три минуты быстрее, около 11 минут. Учитывая, что в процессе визуализации анимации может быть применено размытие движения, применение Embree может быть очень полезным.
Еще одно полезное нововведение – кэширование геометрии и текстурных карт между рендерами. Если вам приходится делать несколько дополнительных визуализаций, то целесообразно некоторые из данных оставить в памяти. Так, V-Ray теперь может сохранить геометрию и текстуры для последующих повторных визуализаций и тестовых рендеров. Для этого, в глобальных параметрах V-Ray, есть специальные параметры, представленные на рисунке ниже.
Рис. 10. Новые параметры для кэширования геометрии и текстур, используемых для повторных рендеров.
Если сцена изменяется достаточно сильно, трансформируются объекты, назначаются новые материалы, то лучше очистить кэш геометрии и текстур. Для этого можно воспользоваться соответствующими большими кнопочками. Так же я рекомендую выполнять очистку кэша перед выполнением финальной визуализации.
Еще одна крайне занимательная функция новой версии, реализованная как в V-Ray for Maya так и в V-Ray for 3ds Max – динамическое разделение регионов визуализации (бакетов), или Dynamic Bucket Splitting. С помощью динамического разделения регионов визуализации (бакетов), V-Ray не будет оставлять без работы освободившиеся ядра процессоров. Так, один большой регион может быть разделен на 4 более маленьких и так до завершения процесса визуализации. Данная функция автоматически активизируется, когда процесс рендеринга подходит к концу и остается небольшая область, которую можно разделить на более мелкие участки.
Рис. 11. Пример визуализации GI и финального изображения с применением Dynamic Bucket Splitting.
Функция Dynamic Bucket Splitting используется не только в процессе финального формирования изображения, а также в процессе визуализации глобального освещения и может помочь в вычислении размытия движения.

Режим прогрессивной визуализации (Progressive Image Sampler)
Третья версия движка визуализации V-Ray обрела не только ускоренные алгоритмы классической визуализации, но и получила новый алгоритм и метод сэмплинга получившего имя Progressive Image Sampler (PIS). Данный метод позволяет незамедлительно оценить все изображение и освещение в сцене.
Рис. 12. Параметры Progressive Image Sampler в глобальных настройках V-Ray for Maya.
Настроить PIS достаточно просто. Обычно выставляется минимальное и максимальное количество сэмплов, порог шума и максимальное количество времени, отводимое на визуализацию. Так как мы может заранее сохранить данные для глобального освещения и использовать их повторно, можно спокойно выполнять повторные визуализации бесконечно долго и добиваться желаемого результата.
Рис. 13. Пример процесса визуализации сцены с помощью Progressive Image Sampler.
А вот еще одна из новых фишек V-Ray 3.0 – новый V-Ray RT.

V-Ray RT CPU / GPU
Движок V-Ray RT является одним из самых интересных решений на платформе V-Ray 3.0. Вообще, данное решение ничуть не уступает многим давно уже представленным на рынке физически-корректным визуализатора, а поддержка родных возможностей V-Ray, таких как материалы, текстуры, источники света и т.д.
Рис. 14. Обновленный интерфейс глобальных параметров V-Ray RT for Maya.
Одной из ключевых возможностей CPU версии V-Ray RT является применение метода прогрессивного сэмплинга в его основе (PIS). Это позволило еще больше приблизить V-Ray RT к возможностям классического V-Ray Advanced и в то же время, обеспечить поддержку визуализации таких важных задач по затенению как SSS, волосы и мех и визуализация объемных эффектов (волюметриков). Но мне очень понравилась еще одна необычная возможность – применение V-Ray RT в качестве движка окна проекции. Да, теперь любое окно проекции может быть использовано как буфер кадра V-Ray RT.
Рис. 15. Отдельное окно проекции Maya и запущенный V-Ray RT CPU.
Хочется отметить, что V-Ray RT в качестве движка для окон проекций дает очень интересный результат, так, мы может использовать привычные Head Up Display поверх изображения получаемого с помощью V-Ray RT и сразу оценивать композицию кадра, освещение, материалы и многое другое. А изменения модели и геометрии, могут быть моментально отображены в высоком качестве и разрешении.

Демонстрация V-Ray RT в качестве движка для окна проекции.
Версия с GPU ускорением, которая так подробно обсуждалась пару лет назад также не стоит на месте. На данный момент, разработчики стараются максимально реализовать возможности классического V-Ray Advanced и CPU версии V-Ray RT в GPU-accelerated движке. В третьей версии, была реализована поддержка визуализации по отдельным элементам, что позволяет хоть как-то применять V-Ray RT GPU в повседневной работе.
Рис. 16. Визуализация нескольких отдельных элементов с помощью V-Ray RT GPU.
Также была значительно повышена производительность движка V-Ray RT GPU, реализована поддержка Motion Blur, поддержка Instanced Geometry, поддержка VRay Proxy объектов, многослойные материалы на основе VRayBlendMtl, источники света с текстурами и геометрические источники света. При использовании Skylight Portals, стал доступен режим Simple Mode.

Реализация Volume Rendering
Новый V-Ray предоставляет специалистам по эффектам сильную поддержку новейших решений для создания волюметрических эффектов, таких как OpenVDB, Field3D и родного Phoenix FD. Для этого, был добавлен специальный инструмент – VRayVolumeGrid.
Рис. 17. Интерфейс VRayVolumeGrid в редакторе атрибутов.
Так, если вы создаете волюметрические эффекты с помощью Houdini, вы можете без проблем экспортировать данные в формате OpenVDB и визуализировать их с помощью V-Ray for Maya используя VRayVolumeGrid.

Новый шейдер под-поверхностного рассеивания (Subsurface Scattering)
Для увеличения детализации и повышения реализма, V-Ray 3.0 теперь поддерживает под-поверхностное рассеивание с освещением на основе объектов и трассировки лучей. Для этого, разработчики создали новый шейдер VRaySkinMtl с многослойным под-поверхностным рассеиванием и отражениями.
Рис. 18. Интерфейс VRaySkinMtl в редакторе атрибутов.
В отличие от предыдущих версий V-Ray, новый шейдер предоставляет гораздо больше возможностей и более интуитивные настройки для высококачественной визуализации материалов кожи и полупрозрачных рассеивающих органических материалов.

Волосы и Мех
Бесспорно, одной из самых ресурсоемких задач для большинства движков визуализации является просчет волос и меха, особенно анимированных волос и меха. Третья версия V-Ray for Maya получила серьезное обновление и оптимизацию затенения и визуализации миллионов полупрозрачных волосков.

Демонстрация производительности в визуализации волос с помощью V-Ray 3.0 fot Maya.
Ключевыми нововведениями новой версии в области визуализации волос и меха являются эффективное использование памяти, тесселяция на основе вида со стороны наблюдателя (View-Depended Tesselation). Данный метод оптимизирует использование памяти с помощью динамически контролируемой тесселяции волос основанной на удалении от камеры. Помимо этого, в новом V-Ray реализованы возможности для создания стилей и причесок. Для этого создан новый инструмент VRayFurStyler для причесок на основе узлов VRayFur.
Рис. 19. Обновленный VRayFur и кисть для создания прически.

Расширенный контроль процесса визуализации
Как и V-Ray 3.0 для 3ds Max, версия для Maya получила несколько новых инструментов и возможностей для облегчения и контроля процесса визуализации. Новый элемент управления Trace Sets позволяет определять, какие объекты будут участвовать в отражениях и преломлениях.
Новый параметр Max Ray Intensity добавляет функцию ограничения вторичных лучей. Данная возможность предоставляет эффективный путь для удаления шума, формируемого каждым очень ярким источником, при этом сохраняя динамический диапазон. Параметры Clamp Max Ray Intensity и Max Ray Intensity находятся в Render Settings => VRay => Global Options => Global Options – advanced.

Демонстрация работы Max Ray Intensity в V-Ray 3.0 for Maya.
Еще одна функция которая может быть полезна CG специалистам – GI Texture Filtering. С помощью данной возможности визуализатор будет использовать фильтрацию текстур в процессе сбора и просчета сэмплов GI. Это также может помочь в уменьшении используемого объема памяти для вычислений GI.
Одна из возможностей, которая мне приглянулась в третьей версии V-Ray, это маски визуализации. С их помощью можно без проблем выполнить визуализацию отдельной области изображения. Так, если нам необходимо сделать акцент на перчике и сфере, и проанализировать изменения только на них, то можно спокойно их выделить и добавить в список Render Masks. При этом, будет создан renderMaskSet и связан с данными объектами.
Рис. 20. Создание связей между объектами и узлом renderMaskSet.
Так, после того как были добавлены данные объекты, повторно выполненная визуализация работала только с ними. Для примера был изменен цвет материалов используемых в перчике. Так как выделены были только центральный перчик и левая зеркальная сфера, то визуализация выполнялась только в областях которые отнесены к ним.
Рис. 21. Процесс визуализации сцены в режиме Render Mask.
В процессе предварительной обработки изображений и подготовки их для тестового композитинга может помочь обновленный и расширенный буфер кадра V-Ray (V-Ray Frame Buffer (VFB)).

Новые возможности V-Ray Frame Buffer
Буфер кадра V-Ray по достоинству можно назвать многофункциональным приложением для предварительной обработки изображений получаемых с помощью V-Ray. Раньше данный инструмент был достаточно прост и даже "убог" в своем функционале, но начиная со второй версии V-Ray и популяризации данного движка в индустрии анимации и эффектов, разработчики приложили максимум усилий для реализации востребованного индустрией функций.
Первое на что хочется обратить внимание, так это на то, что V-Ray Frame Buffer может теперь быть использован в качестве панели в прямо в интерфейсе Maya. Так, выбрав в меню панели видового окна Panels => Panel => V-Ray Frame Buffer, вы сможете без проблем зафиксировать его в рабочем пространстве Maya и использовать как родной Render View.
Рис. 22. Диалог V-Ray Frame Buffer в качестве панели Maya.
Учитывая все больше возрастающую потребность в работе с цветом еще на этапе визуализации и правильной подготовке его к визуализации, требования к буферу кадра в любой системе визуализации значительно возрастают. Так V-Ray Frame Buffer в третьей версии получил ряд важных новшеств для работы с цветом. Так, в панели инструментов Color Correction были добавлены новые свитки параметров: White Balance (Баланс белого), Hue/Saturation (Тон/Насыщенность) и Color Balance (Баланс цвета). Благодаря этим инструментам, вы можете, не прибегая к стороннему редактору произвести корректировку изображения и отправить его заказчику для оценки.
Рис. 23. Новые параметры для управления цветом в третьей версии V-Ray Frame Buffer.
Еще одна важная функция, появившаяся в буфере кадров V-Ray – поддержка нескольких стандартов представления и управления цветом. Так, была добавлена поддержка LUT и ICC профилей, а также набирающего популярность стандарта OpenColorIO (OCIO) (http://opensource.imageworks.com/?p=opencolorio), разработанного студией Sony Pictures ImageWorks.
На иллюстрации ниже приведен пример изменения цветового пространства с помощью профиля OCIO.
Рис. 24. Применение профиля OpenColorIO в V-Ray Frame Buffer.
Если необходимо оценить модель в другом окружении, допустим, применить другой фон, вы можете воспользоваться новой функцией Background Image, с помощью которой вы можете в буфер кадра загрузить другое фоновое изображение.
Рис. 25. Инструмент Background Image в панели инструментов Color Correction в V-Ray Frame Buffer.
Не стоит забывать, что перед камерой не должно быть непрозрачных объектов закрывающих весь кадр, иначе вы не сможете увидеть замененное фоновое изображение.
Помимо коррекции цвета и тонов изображения, буфер кадров V-Ray предоставляет вам возможность заранее проработать такие линзовые эффекты как Bloom и Glare. Для этого, в третьей версии был реализована специальная панель инструментов, получившая название Lens Effects.
Рис. 26. Панель инструментов Lens Effects (слева) в VFB с активными эффектами дымки и свечения.
Одна из популярных функций VFB – Mouse Tracking, с появлением новых алгоритмов сэмплинга и построения изображений, данная функция также получила обновление. Теперь, когда вы используете Progressive Rendering и V-Ray RT, вы можете без проблем использовать функцию Mouse Tracking и определять область, где требуется обеспечить более быструю визуализацию.
Рис. 27. Пример влияния Mouse Tracking на визуализацию изображения с помощью Progressive Sampler.
Помимо расширения функционала в интерфейсе VFB, пользователи которые предпочитают взаимодействовать с различными инструментами через MEL или Python, могут управлять VFB с помощью команд на MEL.

Демонстрация новых возможностей V-Ray Frame Buffer.

Поддержка открытых стандартов
Решения с открытым исходным кодом набирают все большую популярность в индустрии компьютерной графики, большинство ведущих пакетов, таких как Autodesk Maya, Side Effects Houdini, Cinema 4D и другие, получили поддержку большинства из Open Source проектов. Аналогично им, многие разработчики движков визуализации реализовали в своих решениях поддержку открытых стандартов. Третья версия V-Ray не стала исключением.
Разработчики предлагают реализацию следующих свободных библиотек и инструментов в V-Ray for Maya:
  • Alembic 1.5 для передачи данных
  • GLSL для шейдеров OpenGL
  • OpenColorIO для точного и корректного управления цветом
  • OpenEXR 2.2 для изображений в формате Deep Images
  • OpenSubdiv включая поддержку величин Crease
  • OpenVDB и Field3D для объемных эффектов
  • OSL для программируемых шейдеров
  • Ptex для независимого от UV рабочего процесса
  • UDIM и UVTILE для расширенного рабочего процесса с текстурами
Рис. 28. Пример визуализации модели пластмассового колеса с применением OpenSubdiv для тесселяции и настроенными величинами Crease.
На рисунке выше приведен пример визуализации сцены, где для тесселяции модели пластмассового колеса использован OpenSubdiv. Для ребер были определены значения Crease с помощью Crease Set Editor. В отличие от mental ray, в V-Ray полноценно реализовано понимание величины Crease. Если вы визуализируете сцену с величиной Crease больше 1, то V-Ray не будет в отличие от mental ray формировать угол равный 90 градусам, а наоборот, оставит аккуратную фаску. Это очень важный момент, так как разработчики OpenSubdiv изначально закладывали в него такую модель формирования фаски и поддержку величин больше 1.

Как видите, V-Ray стал вполне состоявшимся визуализатором, с огромным потенциалом не только для индустрии архитектурной и предметной визуализации, но и в индустрии анимации и эффектов. Для всех кто желает получить современные технологии визуализации, могут спокойно перейти на новую версию и использовать ее возможности для увеличения производительности своего труда и расширения инструментальной базы.
Во второй части, мы поговорим об изменениях в шейдерах (материалах), об OSL, о создании Deep Images (OpenEXR 2.2), исоповрхностях (isosurfaces), и многом другом.

До скорой встречи, ваш dimson3d! :)
Пост подготовлен при поддержке:

1 комментарий:

Unknown комментирует...

Почитал,интересно. Спасибо.