Пришло время разобраться с послойным рендером. В данной статье будем рассматривать рендер пассы, сделанные в mentalray.
Для начала разберемся, что такое рендер пассы и для чего они нужны. И так render pass с английского переводится как проход визуализации и используется в композитинге для более тонкой настройки картинки. Скажем для того чтобы изменить цвет пиджака у персонажа, или предмета, убрать тень или изменить ее насыщенность, вырезать ненужную деталь в сцене, для этого мы обращаемся к помощи рендер пассам.
Ниже в виде схемы мы рассмотрим получаемые в mental ray пассы, изображения и описания пассов. Цветом выделены те пассы которые при сборе по слоям являются основными.
Изображение |
Render Pass
|
Описание значения |
|
Относительное движение (в растровых координатах XY) объекта в вашей сцене. Другими словами этот рендер-пасс нужен для того, чтобы программа композитинга, знала насколько далеко, каждый пиксель продвинулся из кадра A в кадр B, из кадра B в кадр C и т.д. При этом вектор выражен в нормализированных пикселях.
При композе этот пасс используют когда требуется сделать движение объекта размытым.
|
|
3D Motion Vector |
Вектор просчитывается в мировых осях XYZ. В Mental Ray под Maya трёхмерный Motion Vector выражен в особом внутреннем пространстве.
|
|
Beauty Ambient Ambient Raw
|
Ambient
AmbientRaw
Ambient Material Color (он же Ambient Raw)
|
Ambient—Дополнительное освещение поверхности. В Maya это цвет материала умноженный на цвет средового освещения.
Ambient Raw в отличие от Ambient выдает цвет который мы указали в настройках шейдера Ambient Color
PS. Для визуализации этого паса я в каждом шейдере установил Color— по умолчанию Ambient Color — разные цвета. Если в Ambient Color оставить черный цвет по умолчанию то и объект будет черного цвета. Причем Ambient Raw передает оригинальные цвета выставленные в Ambient Color.
|
|
Ambient Irradiance |
Количество окружающего света, принимаемого поверхности.
|
|
Ambient Occlusion |
Модель затенения, позволяющая добавить реалистичности изображению за счёт вычисления интенсивности света, доходящего до точки поверхности. В отличие от локальных методов, как например затенение по Фонгу, ambient occlusion является глобальным методом, то есть значение яркости каждой точки объекта зависит от других объектов сцены. В принципе, это достаточно отдалённо напоминает глобальное освещение. Этот пасс работает если вы поставили галочку в render settings на против Ambient Occlusion
|
|
Beauty |
Финальный цвет высчитанный при помощи Mental Ray в Maya. Beauty-пасс это полная сборка всех пассов.
|
|
Beauty Without Reflections or Refractions
|
Финальный цвет высчитанный при помощи Mental Ray в Maya. Beauty Without Reflections or Refractions пасс это полная сборка всех пассов за исключением пассов отражений и преломлений света.
|
|
Camera Depth / Camera Depth Remapped |
По простому Z —Depth, пасс глубины. Данный пасс просчитывает карту отдаленности объектов от камеры.
|
|
Coverage |
Mental Ray Coverage покрытие буфера кадра. Этот буфер кадра предлагает только силуэт охват. Self-покрытия в настоящее время не поддерживается.
|
|
Custom Color / Custom Depth / Custom Label / Custom Vector |
Используется в сочетании с writeToColorBuffer, writeToDepthBuffer, writeToVectorBuffer и writeToLabelBuffer шейдеров для записи данных в буфер кадров. Или создает свой собственный проход, если вы используете пользовательские шейдеры. С помощью данных пассов можно настроить почти любой пасс который вам нужен. CustomColor очень универсальный инструмент.
|
|
Diffuse |
Диффузный цвет материала с тенями.
|
|
Diffuse Without Shadows |
Диффузный цвет материала без теней. Ментал реевский шейдер не видит данный пасс (см. таблицу ниже, какие пассы видят mentalray шейдеры)
|
|
Diffuse Material Color |
Обеспечивает постоянный диффузный цвет или текстуру диффузного цвета за исключением света.
Заливает объект чистым цветом который указан в Color или выводит только текстуру.
|
|
Direct Irradiance |
Неотражённый свет, приходящий в каждый сэмпл поверхности. Карта источников света. В сцене два источника цвета, красный и синий. Также их можно разделить сделав по отдельности. Таким способом можно настроить каждый источник света на свое усмотрение.
|
|
Direct Irradiance Without Shadows
|
Тоже самое что Direct Irradiance только без теней. |
|
Glow Source |
Этот пасс просчитывает эффект свечения который мы настраиваем в самом шейдере.
|
|
Incandescence |
Аддитивные цвета.
|
|
Incidence (Light/Normal) |
Измеряет разницу между направлением светового луча и нормалью поверхности 3D-объекта. Если нормаль поверхности направлена к свету, то значение равно 1, а если нормаль направлена в обратную сторону от светового луча — значение равно 0.
|
|
Indirect |
Отражённый свет просчитанный Final Gather, Global Illumination и каустическим эффектом.
|
|
Light Volume |
Вычленяет волюметрические (объёмные) эффекты света. В качестве примера можно привести световой конус.
|
|
Material Incidence (Camera/Normal) |
Измеряет разницу между лучом (направлением секущих плоскостей) виртуальной камеры и нормалью поверхности. Если нормаль поверхности направлена к камере, то значение равно 1, а если нормаль направлена в обратную сторону от камеры — значение равно 0. Любое отклонение между лучом камеры и нормалью более 90 градусов интерпретируется как 1.
|
NormalCamMaterial
NormalObjMaterial
NormalWorldMaterial
|
Material Normal (Camera Space / Object Space / World Space) |
Интерполированная нормаль поверхности. Вы можете выбрать координатную сетку между Camera space, Object space и World space. Если выдавливание (Bump mapping) применено к шейдерной сетке, оно тоже будет отражено в этом пассе.
|
|
Matte |
Это альфа-канал, исключающий прозрачность/непрозрачность. Этот пасс используется в композитинге для масок рендер-слоёв.
|
|
Normalized 2D Motion Vector |
Относительное движение (в растровых координатах XY) объектов в сцене. Другими словами, в зависимости от того как далеко каждый пиксель движется между кадром А и B. Пикселю присваивается значение от 0 до 1. Статические объекты выражены значением 0.5,0.5.
|
|
Object Incidence (Camera/ Normal) |
Тот же Material Incidence (Camera/Normal) за исключением того что он не поддерживает наложение рельефа.
|
NormalCam
NormalObj
NormalWorld
|
Object Normal (Camera Space / Object Space / World Space)
Они же в Passes NormalCam NormalObj NormalWorld
|
Тот же Material Normal (Camera Space / Object Space / World Space) за исключением того что он не поддерживает наложение рельефа.
|
|
Object Volume |
Извлекает все объектно-ориентированные объемные эффекты, например, дым, который содержится в стакане объекта. Также включает в себя объем частиц, меха, и жидкости.
|
|
Opacity |
Объекты непрозрачности, которые являются производными от прозрачность / преломления. В композиции, непрозрачность объекта можно управлять независимо от матового слоя визуализации. Альфа канал отсутствует. PS. Прозрачность материала обозначается градацией цвета от белого до черного
|
|
Raw Shadow |
Тот же Shadow пасс, но рассчитан только по отношению к освещенности в сцене.
|
|
Reflection |
Пасс отражения. Этот пасс включает в себя само отражение, первичное отражение, вторичное отражение и отражение окружающей среды.
|
|
Reflected Material Color |
Отраженный цветовой параметр материала. Чистое, постоянное отображение цвета или отображение текстуры. Используется как отражающий matte, чтобы определить где нужно явно показать отражения (цветные или не цветные)
|
|
Refraction |
Пасс преломления. Включает, первичное преломление и преломление окружающей среды.
|
|
Refraction Material Color |
Параметр прозрачности цвета материала. Чистое, постоянное преломление цвета или отражение текстуры. Используется как преломление / прозрачность matte чтобы определить, где нужно явно показать преломление (цветные или не цветные).
|
|
Scatter |
Эффекты рассеивания, возникающие в результате материалов рассеяния. Атрибуты (например, Scatter Radius, Scatter Color) Не SSS пасс.
|
|
Scene Volume |
Извлекает из сцены объемные эффекты, такие как туман, слоистый туман, дымка, и так далее….
|
Shadow |
Рендер пасс теней.
|
|
|
Specular |
Зеркальное затенение. Отражающие компоненты реализованы по разному в зависимости от шейдера. Например Phong, PhongE, Blinn, и Anisotropic materials производят зеркальное затенение по разному
|
|
Specular Without Shadows |
Тот же Specular только без теней.
|
|
Translucence |
Показывает заднее затенение на лицевой поверхности
|
|
Translucence Without Shadows |
Подобно Translucence но без теней.
|
|
UVPass |
UVpass преобразует UV значение Красного и зеленого канала и создает растровую версию UV пространства. Использовать UVpass, вы можете при композитинге для замены текстуры в 3d визуализации, без необходимости повторного рендера. Пометка: При визуализации этого прохода требуется сохранить файл в формате OpenEXR
PS.На картинке. 1. Оригинальный 3dрендер 2. Заменяемая текстура 3. Отрендеренный UVпасс 4. Текстура вставленная в 3dрендер при композе.
|
|
World Position |
Воссоздание 3dобъекта по рендер пассу WPP
World Position Pass преобразует позицию (X, Y, Z) в значения R, G, B. Используйте этот пасс для восстановления 3dобъекта в рабочем процессе композитинга. Пометка: При визуализации этого прохода требуется сохранить файл в формате OpenEXR
|
Формула сложения пассов
Простая версия.
Beauty = diffuse_result + indirect_result + spec_result +
refl_result + refr_result + tran_result +
add_result
_______________________________________________
Более продвинутая
Beauty = diffuse_level * (diffuse_raw + (indirect_raw * ao_raw)) +
spec_level * spec_raw +
refl_level * refl_raw +
refr_level * refr_raw +
tran_level * tran_raw +
add_result
Материалы которые видят пассы
Как оказалось mental ray не видит большинство своих шейдеров. То есть видеть видит и даже рендерит, но пассы не делает.
В данном случае если вы уже использовали шейдеры mentalray которые не поддерживают пассы, следует сделать следующее.
Зайти в каждый материал и апдейтнуть до версии с допиской passes
Вот и все теперь ваш шейдер поддерживает пассы.
А почему некоторые объекты черного цвета?
По идеи шейдеры с допиской passes должны поддерживать пассы, но и тут подвох, надо смотреть, какой шейдер какие пассы поддерживает. Внизу приведен список материалов и пассов.
Шейдер |
Поддержка пассов |
mia_material_x_passes |
Споддержкой pass contribution map: Diffuse, Diffuse Without Shadows, Direct Irradiance, Direct Irradiance Without Shadows, Raw Shadow, Shadow, Specular, Specular Without Shadows, Translucence, Translucence Without Shadows.
Без поддержки pass contribution map: Incandescence, Indirect, Reflection, Refraction
Partial pass contribution map support (Diffuse pass matches pass conribution maps): Beauty
|
mi_metallic_paint_x_passes
|
Ambient Material Color, Beauty, Diffuse, Direct Irradiance, Indirect, Reflection, Specular |
misss_fast_shader_x_passes
|
Beauty, Diffuse, Direct Irradiance, Specular |
mi_car_paint_phen_x_passes
|
Ambient Material Color, Beauty, Diffuse, Direct Irradiance, Indirect, Reflection, Specular |
Raw пассы
Насколько я понял из своих тестов, дописку Raw носят те пассы которые выводят чистый пасс без какой либо примеси сторонних пассов.
Пассы в ручную
Некоторые пассы в mentalray не совсем идеальны и порой выдают не то, что от них требуется, поэтому всегда можно создать пасс вручную, для этого конечно потребуются более углубленные знания mentalray.
ID—pass – id пасс в maya создается в ручную, он используется как маска для выбранных объектов. Как создать такой пасс я писал в статье Создание ID-Pass в Maya
Background pass — получения отдельного пасса из IBL читаем статью BackgroundPass
PS. Статья еще не совсем полная, хочется узнать более подробно про каждый пасс. Как с ним работать? Для чего он нужен? Поэтому я буду писать продолжения в несколько частей, а также обновлять эту по мере поступления и изучения информации.
Всем спасибо за интерес к данной статье, подписывайтесь на сайт, а также не забывайте про лайки если статья вам была полезна.