среда, 20 февраля 2013 г.

Image-Based Lighting в mental ray for Maya

Здравствуйте друзья, в этом небольшом посте, мы рассмотрим применение технологии Image-Based Lighting реализованной в Autodesk Maya и mental ray renderer. Непосредственно сама технология Image-Based Lighting (далее, IBL). В mental ray появилась достаточно давно, около 10 лет назад, с выходом mental ray 3.2 или 3.3 (2002 — 2004 год), но вот в интерфейсе приложений, она не была реализована, и была доступна в основном при использовании mental ray Standalone или специальных модулей расширения (plug-in's). В Maya, полноценный IBL появился в версии 7.0 или чуть ранее, и реализовывал возможности mental ray в интерфейсе Maya.
Пример визуализации модели робота с помощью IBL в mental ray for Maya (модель Digital Tutors).
Сегодня, мы рассмотрим реализацию IBL в mental ray for Maya 2013, принципиально, инструментарий не изменился в прошествии нескольких лет, но многие кто знакомится с Maya и системой визуализации mental ray часто задаются вопросом о применении освещения на основе HDR изображений.



1. Что такое IBL?
Перед тем как мы перейдем к знакомству с реализацией IBL в интерфейсе Maya, давайте рассмотрим описание технологии данное в документации к системе визуализации mental ray.
Метод Image-Based Lighting (сокращенно IBL) это общий подход, для освещения сцены применяя изображения с высоким динамическим диапазоном (HDR), взятыми из реального мира (фотографии и созданные с помощью специальных программ изображения). Такое изображение может захватывать и передавать первоначальную энергию света и цвет от физического мира в визуализируемую сцену. Система визуализации mental ray предоставляет собственное решение IBL для освещения, основанного на изображении или освещения от созданного процедурно окружения. Оно обеспечивает результат с высоким качеством и оптимальной производительностью по сравнению с традиционными методами освещения, как с помощью Final Gather в сочетании с явно смоделированной геометрией окружающей сцену с IBL изображением, отображаемым на его поверхности.
После включения и подключения регулярного шейдера окружающей среды к визуализируемой камере, mental ray создаст внутренний специальный источник света, который возвращает освещение от окружающей среды.
При визуализации, mental ray выполняет предварительную выборку (pre-sampling) окружающей среды и ускоренное определение структуры данных для поддержки адаптивной выборки в процессе расчета освещенности в шейдерах. Этот вклад освещения будет автоматически добавляться ко всем шейдерам выполняющим регулярные прямые выборки света, что позволяет существующим шейдерам воспользоваться этой функцией.
Рис. 1-1. Общий принцип реализации Image-Based Lighting.

Режим IBL может быть использован в сочетании с progressive rendering.
Для случаев применения в интерактивном режиме, mental ray обеспечивает оптимизацию функций, которые позволяют быстро получить "убедительные", но не обязательно физически точные результаты. Приблизительное освещение в режиме IBL может быть использовано для увеличения скорости, но понижается качество. Эта функция может быть связана с occlusion cache, который хранит предварительно вычисленную информацию о взаимодействиях для геометрии в сцене. Эти данные могут быть использованы в процессе визуализации для приближенного вычисления теней, что позволяет увеличить скорость визуализации, избегая полноценной трассировки теней. Эта техника позволяют создавать изображения с гораздо меньшим шумом за счет отведенного на предварительную обработку времени и видимых артефактов. Существующие шейдеры могут не корректироваться, чтобы получить преимущество из функций оптимизации.

На рисунке 1-1 показана общая схема реализации метода освещения с помощью IBL. Вся геометрия сцены (которую необходимо включить в освещение, помешается в условный объем (окружение), который может быть ограничен сферой, с назначенным на нее специальным шейдером и HDR текстурой. Шейдер позволяет контролировать метод освещения, качество выборки и оптимизацию. Для освещения берутся данные об ин6тенсивности света записанные в HDR изображении.

2. Реализация IBL в mental ray for Maya
В mental ray for Maya, доступ к IBL осуществляется через диалоговое окно Render Settings во вкладке Indirect Lighting.
Рис. 2-1. Свиток Environment с функцией создания IBL и Physical Sun & Sky.

В свитке Environment, вам представляется на выбор два метода создания окружения — IBL и Physical Sun & Sky. Нас интересует первый вариант — IBL. При нажатии на кнопку Create, сцена будет помещена внутрь сферы (источника света) — габаритного контейнера для окружения, на которую и назначается текстурная карта в формате HDR или процедурный шейдер.
Рис. 2-2. Сцена до и после создания оснастки окружения для IBL.

При создании окружения, создается узел (node) mentalrayiblShape содержащий все основные элементы управления IBL в mental ray for Maya. Данный узел взаимодействует с глобальными параметрами mental ray (mentalrayGlobals) через атрибут Image Based Lighting.
Рис. 2-3. Граф с узлом mentalrayiblShape.

Для трансформации окружения, создается специальный узел transform, с помощью которого можно выполнять управление окружающей сцену сферой (источником света). Доступ к атрибутам IBL, можно получить из окна Render Settings, кликнув на кнопку перехода к атрибутам, после создания оснастки для окружения. Так же, кнопка Create поменяется на кнопку Delete, с помощью которой можно удалить созданную оснастку для IBL.
При переходе к атрибутам, предоставляется достаточно обширный набор параметров для настройки IBL. Начиная от простого фонового изображения, заканчивая параметрами для создания освещения и участия в расчете глобального освещения.
Рис. 2-4. Атрибуты mentalrayiblShape (mental ray IBL).

Атрибуты расположены в нескольких отдельных свитках, отвечающих за определённые параметры. Основными свитками являются Image Based Lighting Attributes, Render Stats, Light Emission и Photon Emission. Рассмотрим их внимательнее по отдельности.

Свиток Image Based Lighting Attributs
В данном свитке, сосредоточены основные параметры для выбора типа проецирования карты окружения и типа шейдера, а так же можно выполнить настройку анимационной секвенции для использования в анимации последовательности HDR кадров.
Рис. 2-5. Свиток Image Based Lighting Attributes.

Параметры свитка:
- Mapping — определяет тип проецирования текстурной карты на сферу окружения. Предоставляются следующие типы проецирования: Spherical и Angular. Тип Spherical выполняет сферическое проецирование текстуры, а тип Angular позволяет применять карты, созданные на основе сферических проб.
Рис. 2-6. Пример применения проецирования текстур методами Spherical и Angular.

Наиболее распространёнными являются карты для сферической проекции, их не сложно найти на специализированных сайтах в Интернет и приобрести в составе специальных наборов текстур.
- Type — позволяет определить тип данных используемых для окружения. Пользователю предоставляется выбор из двух типов данных: Image File и Texture. Тип Image File позволяет использовать файл с текстурной картой, хранящейся на жестком диске. Тип Texture позволяет использовать процедурный шейдер, например Maya Checker, Maya Noise или Maya Ramp. В зависимости от выбранного типа, будут доступны определенные атрибуты для настройки.
Рис. 2-7. Пример применения различных типов данных, слева Image File, справа Texture.

Если выбран тип Texture, становятся доступными следующие атрибуты:
- Image Name — позволяет выбрать файл текстурной карты на жестком диске.
- Use Frame Extension — когда данный атрибут активен, вы можете использовать секвенцию из кадров. Для управления порядком смены кадров, воспользуйтесь атрибутом Frame Extension.
Если выбран тип Texture, становятся доступными следующие атрибуты:
- Texture — позволяет указать просто цвет окружения, а так же выбрать процедурную текстурную карту, например Maya Checker, Maya Noise, Maya Ramp или специальный шейдер mental ray.
- Infinite — данный атрибут по умолчанию активен. Если вы выключите данный атрибут, IBL переключится в режим Finite. В режиме Finite, IBL выполняет вычисления в соответствии с полноценной сферой, где поддерживаются переход и равномерное масштабирование. Излучение фотонов и света, выполняются с помощью точечных источников света, не направленных, так что IBL может быть использован при визуализации в закрытом окружении.

Атрибут Hardware Filter предназначен для настройки отображения текстурной карты в окне проекции. Данная группа параметров на прямую не относится к mental ray и может быть использована совместно с движком отображения окон проекций.
Во многих случаях, необходимо контролировать роль окружения в отражениях и видимости на визуализируемых изображениях. Для управления параметрами визуализации IBL и окружения предназначен свиток Render Stats.

Свиток Render Stats
Свиток Render Stats позволяет вам контролировать проявление IBL и эффектов формируемых данным методом в процессе визуализации. Благодаря настройке, выполненной в свитке Render Stats, можно исключить проявление окружения IBL в отражениях или в качестве фона, при этом, оставляя функцию освещения сцены.
Рис. 2-8. Свиток Render Stats.

Основные атрибуты свитка:
- Primary Visibility — данный атрибут позволяет включить или отключить визуализацию окружения в финальном изображении. Когда атрибут активен, окружение будет визуализироваться, когда неактивен, окружение не будет визуализироваться. Это не влияет на проявление окружения в отражениях или при визуализации с Final Gather.
- Visible as Environment — когда данный атрибут не активен. Окружение не будет визуализироваться в отражениях на объектах.
- Visible in Secondary Reflections — данный атрибут позволяет включить или исключить визуализацию окружения во вторичных отражениях. Окружение будет визуализироваться только при первичном отражении, отражение окружения в отраженных поверхностях не будет визуализироваться.
- Visible in Refractions — когда данный атрибут не активен, окружение не будет визуализироваться в преломлениях.
- Visible in Final Gather — когда данный атрибут активен, окружение будет участвовать в визуализации совместно с методом Final Gether. Если он отключен, окружение не будет участвовать в визуализации совместно с Final Gather.
Рис. 2-9. Примеры визуализации сцены с различными состояниями атрибутов  Primary Visibility, Visible as Environment, Visible in Final Gather.

Для контроля цвета окружения и получаемого цвета при использовании метода Final Cather, применяются следующие атрибуты:
- Adjust Environment Color Effects — позволяет активировать применение коррекции эффектов цвета окружения.
- Invert — инвертирует цвета окружения.
Рис. 2-10. Пример визуализации сцены с активным атрибутом Invert, примененным к текстурной карте окружения.

Для коррекции цвета окружения, предоставлены атрибуты Color Gain и Color Offset. Данным атрибутам может быть назначена растровая текстурная карта или шейдер процедурной текстуры.
Рис. 2-11. Пример визуализации сцены с различными значениями Color Gain.

Стоит заметить, что изменение цвета, не оказывает влияния на освещение в сцене. Однако для оказания влияния на цвет освещения, рекомендуется прибегнуть к настройке атрибутов для взаимодействия с Final Gather, активируемых с помощью Adjust Final Gather Color Effects. Атрибут Invert позволяет так же инвертировать цвет, но применительно к цвету формируемому с помощью Final Gather.
Рис. 2-12. Пример визуализации сцены с различными значениями Color Gain с активным Adjust Final Gather Color Effects.

Конечно, основные задачи IBL это не только формирование окружения, наиболее важная задача — освещение сцены. Данный подход позволяет создать разнообразное освещение сцены в зависимости от используемой текстурной карты окружения.
Для контроля освещения в сцене, формируемом с помощью IBL предназначен свиток Light Emission.

Свиток Light Emission
Контроль освещения от окружения выполняется в свитке Light Emission. Многие параметры данного свитка повторяют аналогичные для площадных источников света (Area Lights). В отличие от стандартных источников света, IBL источник представляет собой сферу, окружающую сцену.
Рис, 2-13. Свиток Light Emission.

Для того, что бы окружение излучало свет, необходимо активировать данную функцию в свитке Light Emission, поставив флажок напротив атрибута Emit Light. Когда данный атрибут активен, IBL окружение будет участвовать в формировании освещения сцены.
Рис. 2-14. Пример визуализации сцены с отключенным и включенным атрибутом Emit Light.

Стоит отметить следующий момент, при визуализации прямого освещения от IBL результат финального изображения не будет идеальным, а увеличение качества выборки будет увеличивать время визуализации. Здесь стоит прибегнуть к комбинации IBL+Final Gather или IBL+Photon Map+Final Gather. Так же, можно воспользоваться методом Irradiance particels.
- Qulaity U и Quality V — шейдер освещения, определяет и устанавливает «контрольную текстуру» («control texture») для излучения света. Каждый пиксель данной текстуры излучает прямое освещение. Данные значения задают разрешение контрольной текстуры. Большие значения позволяют получить более точный результат, но время визуализации увеличится. Загружаемая текстура IBL будет уменьшена до разрешения фильтра, а процедурные текстуры преобразованы в пиксельные блоки для увеличения производительности.
Рис. 2-15. Визуализация сцены с различными значениями Quality U и Quality V.

- Samples — определяет выборку для всех источников прямого освещения, представленных контрольной текстурой, зачастую высокие значения увеличивают время визуализации. Поэтому, шейдер имеет встроенный механизм определения, который пытается определить и выбрать основные (ключевые) источники света.
Первый параметр Samples, определяет число ключевых источников света, которые должны быть отобраны. Второй параметр выбирает квази-случайным образом определённое количество вторичных (заливающих) источников света.
- Low Samples — данный атрибут определяет количество выборок источников света из IBL во время вычислений Final Gather. По умолчанию, значение составляет 1/8 от регулярной выборки (по умолчанию 5/2).
Рис. 2-16. Пример визуализации сцены с различными значениями Samples и Low Samples.

Можно сэкономить время на визуализацию, но при этом оставить высокое качество выборки за счет уменьшения значений Quality U и Quality V, но сохраняя высокие значения Samples и Low Samples. Однако, учитывая, что от разрешения и качества текстуры зависит детализация в освещении, сильное уменьшение разрешения может привести к потере в деталях, но при этом уменьшится время, затраченное на визуализацию.
Рис. 2-17. Пример визуализации сцены с высоким значением Samples и Low Samples, но с небольшим разрешением контрольной текстуры.

- Var Focus - каждый "направленный источник света" в сфере контролирующей текстуры определяет его направление. Включение Vary Focus слегка смещает в данном направлении (случайно) и таким образом улучшает качество освещения.
- Disable Backlighting - Если освещение на задней стороне не способствуют освещению поверхностей (то есть, нет никакой прозрачности в сцене), вы должны включить ее. Данный атрибут значительно оптимизирует выборку.
- Emit Diffuse, Emit Specular, Use Ray Trace Shadows, Shadow Color, Ray Depth Limit — данные атрибуты аналогичны стандартным источникам света Maya. Благодаря им вы можете контролировать участие IBL в формировании диффузного цвета, подсветок, теней основанных на трассировке луча и других эффектов затенения.

Для контроля цвета теней и глубины трассировки теней, предназначены атрибуты Shadow Color и Ray Depth Limit.
Для выполнения коррекции цвета освещения от IBL, можно воспользоваться активацией атрибута Adjust Light Emission Color Effects и параметрами Color Gain и Color Offset. Именно благодаря им можно оказывать влияние на цвет освещения и финальный результат.
Рис. 2-18. Пример визуализации сцены с различными параметрами Color Gain и Color Offeset при активном атрибуте Adjust Light Emission Color Effects.

Если вам необходимо использовать фотонные карты, вы можете использовать данный метод глобального освещения совместно с IBL. В узле IBL для этого предназначен свиток Photon Emission. Принципиально не отличающийся от параметров излучения фотонов в стандартных источниках света Maya.

Свиток Photon Emission
Свиток Photon Emission предназначен для контроля излучения фотонов при использовании IBL совместно с методом глобального освещения основанного на фотонных картах (Photon Map).
Рис. 2-19. Свиток Photon Emission в Attribute Editor.

Стоит заранее отметить, что применение фотонных карт совместно с IBL может привести к значительному увеличению времени визуализации при высоком разрешении текстуры окружения и большом количестве фотонов.
- Emit Photons — когда включен, IBL будет участвовать в формировании глобального освещения с использованием Photon Map.
- Global Illumination — определяет количество фотонов для глобального освещения.
- Caustic Photons — определяет количество фотонов для эффекта каустики.
- Exponent — определяет степень (экспоненту) излучения фотонов.
- Standard Emission — Если отключен, будет сохранено только первичное излучение фотонов.

Для выполнения контроля цвета и оттенка при применении фотонных карт, можно воспользоваться атрибутами Adjust Photon Emission Color Effects, Color Gain и Color Offset.
Итак, мы рассмотрели основные параметры инструментов освещения с помощью IBL в mental ray for Maya. Для многих случаев, рассмотренных в этом посте параметров будет вполне достаточно, однако, учитывая значительное увеличение времени визуализации при использовании IBL, не стоит злоупотреблять данным методом на непроизводительных системах.

3. Режим IBL в mental ray Standalone

В формате mental ray Scene Description Language (.mi), режим IBL декларируется следующими командами:
"environment lighting mode" "off" | "automatic" | "approximate" | "light"
"environment lighting cache" on | off
"environment lighting quality" qualityscalar
"environment lighting resolution" resolutionint
"environment lighting scale" r [ g b ]
"environment lighting shader samples" samplesint
"environment lighting shadow" "off" | "solid" | "transparent"
"environment lighting approximate split" samplesint
"environment lighting approximate split vis" raysint
Это глобальные параметры сцены, которые задаются в группе Options при ручном назначении режима IBL. Реализацию IBL в mrsa мы рассмотрим в специальном посте, посвященном mental ray Standalone.

================================

Освещение по методу Image-Based Lighting, отлично подходит для создания реалистичного освещения 3D сцен. Благодаря использованию заранее отснятого материала (HDR карта из фотографий) можно реализовать максимально приближенное освещение для последующей интеграции в реальный фон. При визуализации анимации, можно использовать секвенцию HDR изображений, что позволит более точно воспроизвести освещение в различных условиях и с различных мест съемочной площадки. Не менее важным является реализация освещения сцены в интерьере. Когда необходимо вписать 3D модель в реальное помещение.
Сами HDR изображения можно подготовить с помощью современных графических редакторов и специальных программ, создающих текстурные карты для имитации освещения в студии и других условиях.

Более подробно об HDR изображениях (иначе именуемых как Radiance), можно узнать на специальном сайте создателей данного формата данных и изображений.

- Recovering High Dynamic Range Radiance Maps from Photographs
- Light Probe Image Gallery

PDF версия
Если вам нравится читать отдельно от сайта, вы можете загрузить PDF версию данной публикации.
Image-Based Lighting в mental ray for Maya (PDF, 2,34 Mb, (Yandex.Disk))

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

  1. Спасибо, хорошо, понятно написано.
    Хотелось бы поподробней в целом об освещении (Indirect Lighting), и его настройки.

    ОтветитьУдалить