Ambient Occlusion в Maya

Это учебное пособие раскрывает основы настройки и «запекания» карт Ambient Occlusion в программе Maya 8. Процесс протекает аналогично предыдущим версиям Maya, отличаются только названия пунктов меню.

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

1. Настройка шейдерной иерархии

Для начала откройте окно «hypershade» и из списка нодов Maya и средней кнопкой мыши перетяните узел «Surface Shader» в рабочую область.

Окно hypershade

Теперь щёлкните по кнопке «Create Maya Nodes» в верхней части списка нодов и выберите «Create MentalRay Nodes».

Средней кнопкой мыши перетяните узел 'mib_amb_occlusion' из таблицы текстур в рабочую область.

Узел mib_amb_occlusion в рабочей области

Теперь присоедините выход «OutValue» узла Occlusion к «OutColor» шейдера поверхности. Для этих узлов такое соединение является соединением по умолчанию, так что вы можете просто перетянуть узел Occlusion на узел шейдера средней кнопкой мыши при зажатом Ctrl.

Настройка нодов

2. Настройка сцены

Для того чтобы добиться хороших результатов с Ambient Occlusion, окружение (фон) сцены должен быть белым. Для настройки цвета нужно открыть окно Outliner и выбрать камеру Persp. В редакторе атрибутов, во вкладке «Environment» сдвигаем ползунок цвета фона (Background Color) в значение 100% белый.

Настройка сцены

Теперь откройте окно Render Globals и выберите MentalRay в настройках в production и quality рендера. Замените фильтр multi-pixel на Lanczos (настройки качества автоматически изменятся на «Custom», как на картинке).

Настройка сцены

Закройте окно «Render Globals» и назначьте настроенный вами шейдер поверхности «Surface Shader» вашей модели. Модель должна стать полностью чёрной.

3. Тонкая подстройка

Вставьте свою модель и запустите визуализацию. На этом этапе рендер будет быстрым, а модель будет иметь зернистую поверхность, как здесь...

Тонкая подстройка Ambient Occlusion

Теперь нужно немного подстроить параметры. Откройте редактор атрибутов и в окне Hypershade щёлкните на узел Ambient Occlusion. Атрибуты узла Occlusion отобразятся в редакторе атрибутов. Это настройки, которые я использую для большинства объектов...

Первый показатель для подстройки — Samples. Увеличение этого параметра снизит зернистость, попутно значительно увеличив время визуализации. Для большинства объектов будет достаточно 256 сэмплов.

Тонкая подстройка Ambient Occlusion

Не трогайте параметры «Bright» и «Dark». Они влияют на то, насколько тёмной или светлой будет величина Occlusion. Однако лучше будет использовать значения по умолчанию и при необходимости подправить использовать Photoshop на более поздних стадиях.

Настройки разброса (spread setting) влияют на то, как далеко распространяется occlusion-тень по поверхности. Значение по умолчанию (0.800) подойдёт для большинства объектов. Любое более низкое значение будет чрезмерным, а более высокое может привести к проблеме чрезмерного затенения в режиме наложения на цветные слои в Photoshop.

Тонкая подстройка Ambient Occlusion

4. Запекание текстуры

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

Для начала убедитесь, что вы указали папку проекта. Для этого выберите файл в меню File → Project → Set. В этот файл будет автоматически сохранена запечённая текстура. Если вы забудете указать папку проекта, запечённая текстура будет сохранена в файл проекта по умолчанию, в папке «Мои Документы».

Убедитесь, что вы сделали UV-развёртку для вашей модели
Убедитесь, что все нормали вашей модели смотрят в правильном направлении, иначе результатом запекания будет чёрная картинка
Убедитесь, что вы смягчили грани вашей модели и наоборот, сделали твёрдыми грани там, где это нужно
Сохраните копию вашей сцены на этом этапе, поскольку Maya может «вылететь» во время запекания текстуры

Теперь зайдите в меню «Rendering» и выберите Lighting/Shading → Batch Bake (Mental Ray) → Options.

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

Запекание текстуры

Выберите ваш объект во вьюпорте и нажмите кнопку ''Convert and Close", чтобы запустить запекание Occlusion. После этого Maya не будет реагировать на любые действия, периодически экран будет пустым, а всё происходящее будет напоминать «вылет» программы. Не волнуйтесь, так и должно быть. Всё это действие будет продолжаться от нескольких минут до нескольких часов, в зависимости от сложности сцены.

5. Использование «запечённой» Occlusion Map

Как только «запекание» закончится, откройте ваш проект. Из папки RenderData → MentalRay → Lightmap загрузите в Photoshop файл с «запечённой» текстурой.

Использование Occlusion Map

Поместите слой с запечённым Occlusion поверх текстуры (текстур) вашей модели и выберите для этого слоя режим смешения. Если поверхность модели имитирует органику, вы можете применить к слою с Occlusion фильтр Gaussian Blur. Для поверхностей с чёткими гранями, как в примере, размытие применяться не должно.

Это изображение демонстрирует объект с базовым трёхточечным освещением и без Occlusion-текстуры.

Карты AO дают эффект имитации GI освещения в реальном времени.

Использование Occlusion Map

6. Запекание AO высокополигональных моделей на низкополигональные модели

Карты Ambient Occlusion могут применяться к картам нормалей. Значения Occlusion высокополигональной модели могут быть «запечены» в UV- развёртку низкополигональной модели, что поможет точнее передать детали карты нормали.

Эта функция находится в окне «transfer maps», ниже пункта «lighting/shading» в меню «Render».

Для примера, я использую голову инопланетянина с уже подготовленной картой нормалей:

AO высокополигональных моделей для низкополигональных моделей

Теперь мы запечём карту Ambient Occlusion, чтобы дополнить карту нормалей...

В окне Transfer Maps...

  1. Выберите ваш низкополигональный объект во вьюпорте и нажмите «add selected», чтобы загрузить ваш целевой меш-объект
  2. Сделайте то же самое для высокополигонального объекта
  3. Выберите Ambient в блоке «Output Maps»
  4. Используйте настройки, как на рисунке ниже (не забудьте указать папку, куда будет сохранена карта)

AO высокополигональных моделей для низкополигональных моделей

Результирующая Occlusion карта будет выглядеть подобным образом:

AO высокополигональных моделей для низкополигональных моделей

При «запекании» Occlusion более чем 512×512 таким методом придётся немного подождать.

Эта карта может быть загружена в Photoshop и наложена в режиме Multiply на текстуру модели тем же способом, что и ранее...

AO высокополигональных моделей для низкополигональных моделей

Поделиться в: Опубликовать в twitter Опубликовать в своем блоге livejournal.com