понедельник, 23 июля 2012 г.

mental ray 4 Maya | Shaders Guide | mib_glossy_reflection

Здравствуйте друзья,в новой главе нашего путешествия по миру шейдеров mental ray, мы познакомимся со следующим шейдером из набора шейдеров mental ray 4 Maya. Этим шейдером является mib_glossy_reflection. Это одни из основополагающих шейдеров mental ray располагающихся в группе шейдеров Ray Tracing. При объединении его в единую структуру с другими шейдерами, вы можете получить полный контроль над отражающими свойствами поверхностей и контролировать их.
Шейдеры mib_glossy_reflection и mib_glossy_refraction находятся в группе Materials в Hypershade.
Получить доступ к рассматриваемому в сегодняшнем посте шейдеру можно в окне Hypershade, в группе шейдеров mental ray > Materials. Стоит также отметить, что этот шейдер требует применения ряда базовых шейдеров типа mib_illum_blinn, mib_illum_lambert или mib_illum_phong.
Аналогично шейдерам dgs_material и dielectric_material, этот шейдер использует метод трассировки луча Ray Tracing и требует тщательного контроля и настройки параметров трассировки луча в Render Globals на вкладке Quality.
Рассмотрим шейдер mib_glossy_reflection более подробно.

Шейдер mib_glossy_reflection

Основная задача шейдера mib_glossy_reflection заключается в создании глянцевых отражений на поверхности объекта. В отличии от современных шейдеров, где имитация отражения заложена в основание и реализована в их интерфейсе, mib_glossy_reflection может быть использован совместно с шейдерами базовых материалов подключенными к нему.
Описание шейдера в формате .mi:

color "mib_glossy_reflection" (
    shader          "base_material",
    color           "reflection_color",
    scalar          "max_distance",
    scalar          "falloff"                default 2.0,
    color           "environment_color",
    scalar          "reflection_base_weight" default 0.2,
    scalar          "reflection_edge_weight" default 1.0,
    scalar          "edge_factor"            default 5.0,
    shader          "environment",
    boolean         "single_env_sample"      default true,
    integer         "samples"                default 16,
    scalar          "u_spread"               default 0.5,
    scalar          "v_spread"               default 0.5,
    vector          "u_axis",
    vector          "v_axis",
    scalar          "dispersion"             default 0.0,
    array color     "spectrum"
)
apply material, texture
version 3

Шейдер mib_glossy_reflection очень просто декларируется в файле, экспортируемом в формат .mi. В Autodesk Maya, этот шейдер представлен полностью, и все параметры его реализованы в интерфейсе программы.
Реализация шейдера mib_glossy_reflection в интерфейсе Attribute Editor.
Шейдер подключается к Shading Group через атрибут Material Shader.
Давайте рассмотрим назначение параметров шейдера mib_glossy_reflection. Я буду указывать название из описания шейдера в формате .mi, а в скобках будет дано название в интерфейсе Maya.
«base_material» (Base Material) — в этом атрибуте, задается шейдер поверхности, к которому будут добавлены свойства отражения. Для примера, можно использовать шейдер mib_illum_phong или аналогичный шейдер из шейдеров затенения поверхности.
Граф всей конструкции шейдера использованного для демонстрации.
«reflection_color» (Reflection Color) — определяет степень отражения поверхности и окраску. Вычисляемые отражения просто проявляются за счет этого значения.
Пример влияния параметра reflection_color на свойства поверхности в шейдере mib_glossy_reflection.
«max_distance» (Max Distance) — если это значение равно нулю, досягаемость отражения лучей бесконечна. Для значений больше нуля, досягаемость отраженных лучей ограничивается этим расстоянием (но вы можете получить большой выигрыш в производительности), цвет отражения исчезает в цвете окружающей среды, длина луча приближается к этому расстоянию. Используйте этот параметр для повышения производительности и, чтобы избежать чрезмерного шума из-за далеких объектов с высокой контрастностью.
Пример влияния параметра max_distance на свойства поверхности в шейдере mib_glossy_reflection.
«fallof» (Falloff) - устанавливает спад в окружающую среду, которая является функцией возведенной в степень. По умолчанию 2.0 означает, что спад соответствует квадрату расстояния; 3,0 означает, что расстояние возведено в куб, и так далее. Этот параметр не действует, если max_distance равен нулю.
Пример влияния параметра fallof на свойства поверхности в шейдере mib_glossy_reflection.
«environment_color» (Environment Color) - является множителем, когда луч пропускает любой объект и попадает в окружающее пространство. Для физической точности, оно должно быть точно таким же, как reflection_color, но предоставляется отдельно, чтобы дать больше контроля в обеспечении баланса между яркостью отражения объектов и отражения окружающей среды.
reflection_base_weight (Reflection Base Weight) - является скалярным множителем для отражения на поверхностях перед камерой, и reflection_edge_weight на поверхностях, перпендикулярных камере (т.е. ребера) и edge_factor - толщина «ребра». Вообще,еще есть отражения на ребрах (углах скольжения), а не только на основных поверхностях, известные как "эффект Френеля".
Пример влияния параметра reflection_base_weight, eflection_edge_weight, edge_factor на свойства поверхности в шейдере mib_glossy_reflection.
«Environment» (Environment) — этот параметр позволяет явно указать шейдер окружения относящийся к текущему шейдеру, Если не указан шейдер окружения, данные для окружения будут взяты из глобальных параметров камеры. Это позволяет использовать специально подготовленные размытые карты окружения для отражений окружающей среды.
Если карта окружения достаточно сильно размыта, это невыгодно с точки зрения производительности, а также может дать больше шума при многократной выборке из окружающего пространства. Когда single_env_sample выключен, образец из окружения создается для отраженного луча, который пропускает объект или должен быть смешан с окружающей средой, в связи с использованием max_distance. При включении, сэмплинг окружения выполняется один раз для лучей отражений.
«samples» (Samples) - определяет количество семплов, обеспечивающих качество затенения. Если ноль, шейдеры возвращается к однократной выборке зеркальных отражений. Рекомендуется использовать значения 64 и выше джля финальной визуализации, а для тестовой достаточно 16 — 32 сэмпла. Стоит заметить, что при увеличении количества сэмплов, время визуализации увеличивается.
Пример влияния параметра samples на свойства поверхности в шейдере mib_glossy_reflection.
u_spread и v_spread (U Spread и V Spread) - это количество изменения векторов нормалей в направлении осей U и V. Если эти значения совпадают,  формируется изотропное глянцевое отражение. Если значения различаются, формируются анизотропные отражения.
Пример влияния параметра u_spread и v_spread на свойства поверхности в шейдере mib_glossy_reflection.
u_axis и v_axis (U Axis и V Axis) - дополнительные параметры для направления анизотропных подсветок. Они применяются только в анизотропном режиме. Если u_axis равен 0,0,0 шейдер по умолчанию пытается создать вектор на основе первого производного вектора поверхности, а если таковой отсутствует, на основе оси X в пространстве объекта. Если u_axis задается значение оно будет использоваться в качестве направления U анизотропной подсветки. Если также заданы значения v_axis они будут использованы в качестве направления V, но если не указывать направление, V вычисляется как векторное произведение нормалей исходной поверхности и направления U.
Пример влияния параметра u_axis и v_axis на свойства поверхности в шейдере mib_glossy_reflection.
«dispersion» (Dispertion) — имитирует эффект хроматических аберраций. При значении 0.0 отсутствуют хроматические аберрации, при значении 1.0 осуществляется полная имитация хроматических аберраций.

Пример влияния параметра dispertion на свойства поверхности в шейдере mib_glossy_reflection.
«spectrum» (Spectrum) - представляет собой массив из цветов определяющий "Радугу", в котором цвета нарушены, когда параметр дисперсии не равен нулю. По умолчанию это красный желтый белый голубой синий и индиго цвета, но могут быть заданы любые цвета.

Пример влияния параметра spectrum при dispertion не равном 0 на свойства поверхности в шейдере mib_glossy_reflection.
Шедйер mib_glossy_reflection позволяет вам контролировать все основные свойства отражений на поверхности объекта. Помимо этого, благодаря более тонкой настройке анизотропных отражений можно получить максимально реалистичный результат.
Прмимер визуализации простой сцены с шариковой ручкой. Для шейдеров ручки использован mib_glossy_reflection.

Следующий шейдер который мы рассмотрим — mib_glossy_refraction, предназначенный для визуализации преломляющих свойств поверхности.

До скорой встречи, ваш dimson3d :).

Опубликовано

mental ray Standalone Global Review
- mental ray Standalone | Первое знакомство
mental ray Standalone | Экспорт данных из 3D приложений

Mental ray 4 Maya | Shaders Guide
- mental ray 4 Maya | Shaders Guide | Введение
- mental ray 4 Maya | Shaders Guide | Основы
- mental ray 4 Maya | Shaders Guide | dgs_material, dielectric_material
- mental ray 4 Maya | Shaders Guide | mib_glossy_reflection