среда, 21 ноября 2012 г.

mental ray 4 Maya | Shaders Guide | шейдеры mib_illum_*

Здравствуйте друзья, в этом посте мы с вами продолжим знакомиться с шейдерами mental ray 4 maya. В предыдущих постах, мы с вами рассмотрели первые из шейдеров в группе Materials. Здесь мы познакомимся с основополагающими шейдерами и методами затенения, которые заложены практически во всех системах визуализации.

Такими шейдерами в mental ray являются: mib_illum_lambert, mib_illum_phong, mib_illum_ward, mib_illum_ward_deriv, mib_illum_cooktorr, mib_illum_blinn и mib_illum_hair. В mental ray они относятся к группе шейдеров Illumination, а в Maya находятся в группе Materials (mental ray).
Шейдеры mib_illum_* в интерфейсе Hypershade в Maya.

Модели затенения по Блинну (Blinn), Ламберту (Lambert) и Фонгу (Phong) Были разработаны в далеких 80-х годах XX столетия. Они стали результатов различных экспериментов над затенением полигональных поверхностей и в большинстве своем вышли из стен ныне легендарной и известной во всем мире студии PIXAR.



Но по мере того, что все эти разработки демонстрировались на конференции SIGGRAPH и просто передавались между разработчиками, они стали реализовываться и в других системах визуализации, в частности – mental ray. Сейчас, конечно эти методы затенения реализованы даже в современных интерактивных графических движках, но здесь стоит рассматривать их как базу для более сложных конструкций затенителей.
Мы более подробно рассмотрим применение этих методов затенения в других шейдерах в последующих главах.
Примеры визуализации шейдеров mib_illum_*.

На приведенной выше иллюстрации показана визуализация шейдеров mib_illum_lambert, mib_illum_blinn и mib_illum_phong со значениями по умолчанию. На первый взгляд, различия могут показаться несущественными, но при создании сложных конструкций затенителей, эти незаметные различия могут проявиться в полной мере.
Шейдеры, рассматриваемые в этом посте, находятся в библиотеке базовых шейдеров mental ray:
        link "base.so"
        $include
Эта библиотека содержит простые шейдеры разработанные для создания стандартных блоков элементов сцен, именуемых Phenomenon™. Они выполняют функции, полезные в разных ситуациях, и не привязаны к конкретным типам шейдеров. Базовый шейдер, по сути, не является материалом или шейдером источников света, но может быть использован для создания Phenomenon™ использоваться вместо материала или шейдера источника света. Это означает, что базовые шейдеры должны быть обобщены, как это возможно. Они избегают взаимозависимостей, которые ограничивают их применение.
Шейдеры предназначены для формирования групп, таких как группы базовых шейдеров геометрии или BRDF функций. Члены группы имеют аналогичные параметры, чтобы легко заменить один базовый шейдер другим в одной группе. Замещающий шейдер может иметь дополнительные параметры, но те, которые он использует совместно с другими аналогичными базовыми шейдерами той же группы, имеют те же имена и типы и тот же макет. В целом, общие параметры на первом месте.
Сегодняшнее знакомство мы с вами начнем с шейдера mib_illum_lambert.

Шейдер mib_illum_lambert
Шейдер mib_illum_lambert использует модель затенения по Ламберту (Lambert) и реализует освещение с учетом окружающей среды и диффузного цвета (альфа игнорируется), и список источников света. Шейдер mib_illum_lambert может быть использован совместно с шейдерами mib_glossy_reflect и mib_glossy_refract, рассмотренными в предыдущих постах.
Описание шейдера в формате .mi:
color "mib_illum_lambert" (
color           "ambience",
color           "ambient",
color           "diffuse",
integer         "mode",
array light     "lights")
Шейдер mib_illum_lambert очень просто декларируется в файле, экспортируемом в формат .mi. В Autodesk Maya, этот шейдер представлен полностью, и все параметры его реализованы в интерфейсе программы.
Реализация шейдера mib_illum_lambert в интерфейсе Attribute Editor.

Шейдер подключается к Shading Group через атрибут Material Shader.
Рассмотрим назначение параметров шейдера mib_illum_lambert. Я буду указывать название из описания шейдера в формате .mi, а в скобках будет дано название в интерфейсе Maya.
«ambience» (Ambience) — вклад для цвета окружения (Ambient color). Идея состоит в том, что цвет окружающей среды и диффузный цвет могут быть получены из заложенного шейдера (например, текстурная карта) и яркость окружения может быть уменьшена, чтобы не потерять эффект освещения.
Пример визуализации объекта с различным «ambience».

Как видно на приведенной выше иллюстрации, благодаря ambience увеличивается яркость всего материала, при этом, если задать определенный цвет, он будет влиять не только на сам объект, но и участвовать в освещении соседних поверхностей (при применении Final Gather). Для создания более отчетливой формы и контраста, рекомендуется понижать вклад ambience, таким образом, вы можете получить более отчетливый объем в модели.
«ambient» (Ambient) – позволяет задать константу смещения цвета.
Пример визуализации объекта с различным «ambient».

При увеличении значения ambient, освещенность в затененных участках увеличивается. Если задать цвет, он будет проявляться и влиять на освещенность других объектов (при применении Final Gather). Если значения ambience и ambient совпадают, на итоговом результате будет явно преобладать их влияние, а последующий диффузный цвет практически не будет проявляться.
«diffuse» (Diffuse) – добавляется к результату от каждого источника света, после приумножения с цветом, возвращенным к источнику света и вкладом основанном на скалярном произведении направления падающего луча и направления света. Более простыми словами, данный параметр позволяет задать диффузный цвет, шейдер процедурной текстуры или растровой карты.
Пример визуализации объекта с различным «diffuse».

На приведенной иллюстрации, объекту был задан зеленый цвет в diffuse, однако ambient и ambience остались белыми. Необычного эффекта как на самом правом изображении, можно добиться благодаря изменению параметра ambient. Но если сделать ambience ярче, то диффузный цвет может практически быть поглощён им.
Примеры визуализации объекта с различными значениями «diffuse», «ambient» и «ambience».

Пример поглощения диффузного цвета цветами ambient и ambience показан на второй картинке в иллюстрации выше. Если вы используете текстурную карту, обратите внимание на то, какой эффект будет оказывать на нее цвет ambient и ambience.
"mode" – контролирует режим источников света указанных в списке.
"lights" – список источников света позволяющий контролировать взаимосвязи шейдера с источниками света в сцене.
Шейдер mib_illum_lambert не реализует зеркальные подсветки (Specular), его основная задача заключается в реализации диффузного затенения поверхности. Следующий шейдер в нашем сегодняшнем обзоре предоставляет возможность визуализации зеркальных подсветок, этим шейдером является mib_illum_phong.

Шейдер mib_illum_phong
Шейдер mib_illum_phong использует модель затенения по Фонгу (Phong) и реализует освещение с учетом окружающей среды и диффузного цвета (альфа игнорируется), и подключенных источников света. Так же, шейдер mib_illum_phong реализует зеркальные подсветки (Specular) и может быть использован совместно с шейдерами mib_glossy_reflect и mib_glossy_refract, рассмотренными в предыдущих постах. Стоит отметить, что шейдер mib_illum_phong не является физически точным затенителем.
Описание шейдера в формате .mi:
color "mib_illum_phong" (
color           "ambience",
color           "ambient",
color           "diffuse",
color           "specular",
scalar          "exponent",
integer         "mode",
array light     "lights")
Шейдер mib_illum_phong очень просто декларируется в файле, экспортируемом в формат .mi. В Autodesk Maya, этот шейдер представлен полностью, и все параметры его реализованы в интерфейсе программы.
Реализация шейдера mib_illum_phong в интерфейсе Attribute Editor.

Шейдер подключается к Shading Group через атрибут Material Shader. Рассмотрим назначение параметров шейдера mib_illum_phong.
«ambience» (Ambience) — вклад для цвета окружения (Ambient color). Идея состоит в том, что цвет окружающей среды и диффузный цвет могут быть получены из заложенного шейдера (например, текстурная карта) и яркость окружения может быть уменьшена, чтобы не потерять эффект освещения.
Пример визуализации объекта с различным «ambience».

Как видно на приведенной выше иллюстрации, благодаря «ambience» увеличивается яркость всего материала, при этом, если задать определенный цвет, он будет влиять не только на сам объект, но и участвовать в освещении соседних поверхностей (при применении Final Gather). Для создания более отчетливой формы и контраста, рекомендуется понижать вклад ambience, таким образом, вы можете получить более отчетливый объем в модели.
«ambient» (Ambient) — позволяет задать константу смещения цвета.
Пример визуализации объекта с различным «ambient».

При увеличении значения «ambient», освещенность в затененных участках увеличивается. Если задать цвет, он будет проявляться и влиять на освещенность других объектов (при применении Final Gather). Если значения Ambience увеличивать, оно будет преумножать вклад освещенности от окружения.
«diffuse» (Diffuse) – добавляется к результату от каждого источника света, после приумножения с цветом, возвращенным к источнику света и вкладом основанном на скалярном произведении направления падающего луча и направления света. Более простыми словами, данный параметр позволяет задать диффузный цвет, шейдер процедурной текстуры или растровой карты.
Пример визуализации объекта с различным «diffuse».

На приведенной иллюстрации, объекту был задан зеленый цвет в «diffuse», однако ambient и ambience остались белыми. Изменить оттенок цвета, как это показано на самом правом изображении, можно благодаря изменению параметра ambient. Но если сделать ambience ярче, то диффузный цвет может практически быть поглощён им.
«specular» (Specular) - задает цвет зеркальных подсветок.
Пример визуализации объекта с различным «specular».

Если изменять цвет «specular» в меньшую или большую сторону, он будет оказывать различный результат на зеркальные подсветки. Чем темнее цвет, тем меньше он оказывает вклад в зеркальные подсветки, делая его ярче, вклад будет больше и пятно от зеркальных подсветок будет более насыщенным.
«exponent» (Exponent) — контролирует ширину зеркальных подсветок. Уменьшение значения увеличивает размер.
Пример визуализации объекта с различным «exponent».

На иллюстрации показано, влияние «exponent» на радиус зеркальной подсветки. Чем выше значение, подсветки более сконцентрированы и пятно приобретает более отчетливую форму.
"mode" –  контролирует режим источников света указанных в списке.
"lights" – это список источников света позволяющий контролировать взаимосвязи шейдера с источниками света через список источников света.
Следующий шейдер в нашем сегодняшнем обзоре предоставляет возможность визуализации анизотропных зеркальных подсветок, этим шейдером является mib_illum_ward.

Шейдер mib_illum_ward
Шейдер mib_illum_ward использует модель затенения по Уарду (Ward) и реализует освещение с учетом окружающей среды, диффузного цвета и цвета глянцевых отражений, два параметра управления блеском поверхности, направления подсветок, и подключенных источников света. Шейдер не является физически точным затенителем.
Описание шейдера в формате .mi:
color "mib_illum_ward" ( 
color           "ambience",
color           "ambient",
color           "diffuse",
color           "glossy",
scalar          "shiny_u",
scalar          "shiny_v",
vector          "u",
vector          "v",
integer         "mode",
array light     "lights")
Шейдер mib_illum_ward очень просто декларируется в файле, экспортируемом в формат .mi. В Autodesk Maya, этот шейдер представлен полностью, и все параметры его реализованы в интерфейсе программы.
Реализация шейдера mib_illum_ward в интерфейсе Attribute Editor.

Атрибуты ambience, ambient и diffuse, аналогичны описанным выше в шейдерах mib_ullum_lambert и mib_illum_phong. Но в шейдере mib_illum_ward реализована визуализация глянцевых подсветок (glossy), для контроля глянцевых подсветок представлены два параметра Shiny (U) и Shiny (V). Для контроля направления анизотропных подсветок, используются атрибуты Brushing Direction и Perpendicular Direction.
Рассмотрим специфические для этого шейдера параметры более внимательно:
«glossy» (Glossy) — добавляется к освещению. Это цвет глянцевых подсветок вычисляемый по модели анизотропных глянцевых отражений Уарда.
«shiny_u» и «shiny_v» (Shiny U и Shiny V) — контролирует ширину глянцевых подсветок в U и V направлениях, соответственно. Чем ниже значение, тем больше будет размер блика.
«U» и «V» (Brushing Direction & Perpendicular Direction) - определяет направление зачищенных элементов в анизотропном материале. Они должны быть перпендикулярны друг-другу и к нормалям поверхности, и единицам длины. Рекомендуется, использовать шейдер mib_texture_rotate для контроля направления зачищенных элементов.

Граф шейдера mib_illum_ward с шейдерами mib_texture_rotate и mib_texture_vector.

Для формирования анизотропного блика, рекомендуется использовать шейдеры mib_texture_rotate и mib_texture_vector. В Maya, шейдер mib_texture_vector подключен к шейдеру mib_texture_rotate и выполняет функцию определения координат и проецированная текстуры на поверхности объекта, а mib_texture_rotate подключен через атрибуты «u» и «v» к шейдеру mib_illum_ward.
Создание связей между шейдерами mib_texture_vector и mib_texture_rotate и mib_illum_ward.

С помощью mib_texture_rotate вы можете выполнять изменение направления анизотропного отражения. Влияние оказывает атрибут «angle», с помощью которого и выполняется основной контроль угла анизотропного отражения.
Пример визуализации шейдера mib_illum_ward, с различными значениями угла поворота в шейдере mib_texture_vector.

Контролируя значения «shiny_u» и «shiny_v», вы можете задать форму анизотропного отражения, если значения равны, будет формироваться ровный круглый блик.
Пример визуализации шейдера mib_illum_ward, с различными значениями «shiny_u» и «shiny_v»

В формате Scene Description Langiuage, показанный выше шейдер будет записан следующим образом:
shader "tvector"
"mib_texture_vector" (
"select" 0,
"selspace" 0,
"vertex" 0,
"project" 7,
)

shader "trotateshader"
"mib_texture_rotate" (
"input" = "tvector",
"angle"0.25,
"min" 0.,
"max" 1.,
)

material "ward_mat"
"mib_illum_ward" (
"ambience" 0.05 0.05 0.05 1.,
"ambient" 0.5 0.5 0.5 1.,
"diffuse" 0.5 0.7 0.3 1.,
"glossy" 0.4 0.4 0.4 1.,
"shiny_u" 1.,
"shiny_v" 10.,
"u" = "trotateshader.u",
"v" = "trotateshader.v",
"mode" 4,
"lights" []
)
end material
Стоит заметить, что явного параметра «u» и «v» в шедйере mib_texture_rotate нет, для того чтобы шейдер mib_illum_ward понимал что подразумевается под значениями «u» и «v», в mib_texture_rotate есть два скрытых векторных значения - «u» и «v». О применении шейдеров mib_texture_rotate и mib_texture_vector мы поговорим в следующих главах нашего гида.
Если необходимо реализовать направление анизотропных бликов от производной поверхности, вам может пригодиться другой шейдер с моделью затенения по Уарду — mib_illum_ward_deriv.

Шейдер mib_illum_ward_deriv
Выполняет затенение по Уарду, реализует освещение с учетом окружающей среды, диффузного цвета и цвета глянцевых отражений, два параметра управления анизотропными отражениями и подключенных источников света. Единственное отличие от mib_illum_ward в том, что направление блика берется из производной поверхности. И аналогично шейдеру mib_illum_ward, он не является физически точным шейдером.
Вы можете не создавать более сложную конструкцию шейдера с использованием mib_texture_rotate и mib_texture_vector, но стоит учесть, что применение mib_illum_ward_deriv более приемлемо при визуализации NURBS поверхностей, где явно заданы координаты UV.
Описание шейдера в формате .mi:
color "mib_illum_ward_deriv" (
color           "ambience",
color           "ambient",
color           "diffuse",
color           "glossy",
scalar          "shiny_u",
scalar          "shiny_v",
integer         "mode",
array light     "lights")
В интерфейсе Maya, данный шейдер реализован полностью и может быть использован совместно с шейдерами mib_glossy_*.
Реализация шейдера mib_illum_ward_deriv в интерфейсе Attribute Editor.

Аналогично описанным выше шейдерам, mib_illum_ward_deriv также обладает атрибутами ambience, ambient и diffuse. А с шейдером mib_illum_ward связывает наличие атрибутов Glossy, Shiny U и Shiny V.
Однако, Shiny U и Shiny V контролирует ширину и направление глянцевых подсветок в U и V координатах, соответственно.
Пример визуализации шейдера mib_illum_ward_deriv с различными значениями Shiny U и Shiny V.

Для того что бы повернуть анизотропное отражение на 90 градусов, необходимо задать значения U > V.
Шейдеры mib_illim_ward и mib_illum_ward_deriv, отлично подходят для создания сложных шейдеров имитирующих зачищенные металлические поверхности с анизотропными отражениями. Однако в наборе базовых шейдеров mental ray представлены еще несколько шейдеров.

Шейдер mib_illum_cooktorr
Еще одним шейдером, входящим в библиотеку базовых шейдеров, является шейдер mib_illum_cooktorr, реализующий затенение по методу Cook-Torrance (Кук-Торранс). Данный шейдер, аналогично описанным выше шейдерам дает возможность визуализировать освещение от окружения, диффузный цвет, зеркальные RGB подсветки, имитировать шероховатость, индекс преломления и задействовать список источников света. Модель освещения по Cook-Torrance позволяет визуализировать зеркальные подсветки контролируя преломление света с помощью трех каналов RGB.
В формате .mi, шейдер декларируется в следующем виде:
color "mib_illum_cooktorr" (
color           "ambience",
color           "ambient",
color           "diffuse",
color           "specular",
scalar          "roughness",
color           "ior",
integer         "mode",
array light     "lights")
В интерфейсе Maya, шейдер реализован полностью.
Реализация шейдера mib_illum_cooktorr в интерфейсе Attribute Editor.

Атрибуты шейдера ambience, ambient, diffuse и specular аналогичны параметрам в рассмотренных ранее шейдерах. А для контроля зеркальных подсветок реализованы атрибуты roughness и Index of Refraction (,red ,green ,blue).
«roughness» (Roughness) - является средним уклона микрофасок на поверхности. Он контролирует ширину зеркального блика. Если вам необходим более яркий блик, это можно сделать с помощью изменения атрибута Specular.
Влияние атрибута «roughness» на зеркальный блик в шейдере mib_illum_cooktorr.

Небольшое изменение атрибута Roughness позволяет создать очень мягкие блики на поверхности объекта, придавая ему более матовые свойства.
«ior» (Index of Refraction (,red ,green ,blue)) — задает индекс преломления материала по трем длинам волн (red, green, blue). Обычно, металлы имеют больший индекс преломления чем стекло. Значение должно быть равно или больше 1.0, меньшие значения будут возвращены к 1.0.
Пример визуализации шейдера с различными значениями ior (red, green, blue).

С помощью шейдера mib_illum_cooktorr, вы можете создавать материалы со специфическими зеркальными подсветками, например металлы или пластики, когда формируемый блик должен отличаться от диффузного цвета.
Следующий шейдер, входящий в библиотеку базовых шейдеров — шейдер mib_illum_blinn, один из основополагающих шейдеров в компьютерной графике.

Шейдер mib_illum_blinn
Шейдер mib_illum_blinn, реализует затенение по методу Blinn (Блинн). Данный шейдер, аналогично описанным выше шейдерам дает возможность визуализировать освещение от окружения, диффузный цвет, зеркальные подсветки, имитировать шероховатость, индекс преломления и задействовать список источников света. Модель освещения по Blinn позволяет визуализировать зеркальные подсветки контролируя преломление света, но без учета смещения цвета в зависимости от угла. Здесь, используется только индекс преломления.
В формате .mi, шейдер декларируется в следующем виде:
color "mib_illum_blinn" (
color           "ambience",
color           "ambient",
color           "diffuse",
color           "specular",
scalar          "roughness",
color           "ior",
integer         "mode",
array light     "lights")
В интерфейсе Maya, шейдер реализован полностью.
Реализация шейдера mib_illum_blinn в интерфейсе Attribute Editor.

Стоит заметить, что изначально, с параметрами по умолчанию, явно выраженного блика не будет. Следует настроить следующие параметры – Specular, Roughness и ior. ior обязательно должен быть выше 1.0.
Пример визуализации шейдера mib_illum_blinn с различными значениями атрибутов.

На приведенном выше примере, показано, как влияют различные значения атрибутов Specular, Roughness и ior на затенение модели с табуретом. Более металлического эффекта, можно добиться задав значения ior равными или более 10.0 и Roughness от 0,4 до 0.7 и выше.
Итак, мы рассмотрели уже практически все основные модели затенения реализованные в mental ray. Данные шейдеры реализованы как в mental ray 4 Maya, так и в mental ray Standalone и могут быть использованы для создания достаточно сложных конструкций шейдеров. Но в базовой библиотеке остался еще один, более специфичный шейдер – mib_illum_hair, позволяющий визуализировать мех и волосы, и применяемый совместно со специальным типом геометрии.

Шейдер mib_illum_hair
Шейдер выполняет затенение геометрии волос похожее на затенение по методу Фонга (Phong illumination). Волосы требует специализированных шейдеров, потому что они не являются затененными правильными треугольниками, но представлены процедурной геометрией состоящей из плоских линий. Обратите внимание, что специальные шейдеры должны быть использованы в параметрах соединения, которые могут влиять на различия в затенения или наложение текстур на геометрию волос.
В формате .mi, шейдер декларируется в следующем виде:
color "mib_illum_hair" (
color           "ambience",
color           "ambient",
color           "diffuse",
color           "specular",
scalar          "exponent",
integer         "mode",
array light     "lights")
Как видите, шейдер представлен аналогичными как и в mib_illum_phong параметрами, однако, учитывая специфику шейдера, он может быть применен только к специальному типу геометрии — mental ray hair. В интерфейсе Maya, шейдер представлен полностью, и может быть настроен в Attribute Editor.
Реализация шейдера mib_illum_hair в интерфейсе Attribute Editor.

Учитывая специфичность этого шейдера, мы его рассмотрим в отдельном посте посвященном визуализации меха и волос в Maya (Maya Hair & Maya Fur).

Атрибуты «mode» и «lights»
Как вы уже заметили, в каждом из описанных в этом посте шейдеров, присутствуют атрибуты «mode» и «light». Они выполняют одни функции для каждого из шейдеров. Так как не имеет смысла их описывать для каждого шейдера, я вынес их описание в этот раздел.
«mode» - контролирует, какие источники света будут использованы (см. описание ниже)
«lights» - это список инстансов источников света (light instances), используемый для определения источников света.
Light Lists
Все шейдеры освещения, с заданным параметром «mode» и параметром «lights» для управления множеством источников света, которые используются для освещения. Освещение осуществляется либо с помощью light instances, приведенных в параметре «lights», либо списка источников света участвующих в затенении геометрии (geometry instances). Использование списков источников света назначенных к объектам в сцене, позволяет создать общее затенение даже для объектов с различными отношениями с источниками света. Источники света используются в соответствии со следующими возможными значениями для параметра «mode»:
0 — освещение, использующее параметр lights; если источники света не указаны, тогда используется instance light list, если в списке нет указанного экземпляра источника света, то, используются все источники света в сцене. Это значение по умолчанию.
1 - освещение, использующее указанные источники света в режиме inclusive, т. е. экземпляры групп, экземпляров источников света, включающие все инстансы источников света в группу.
2 - освещение, использующее указанные источники света в режиме exclusive, то есть, используя все источники света, за исключением указанных в списке.
4 - освещение игнорирующее любые указанные источники света, и с использованием экземпляра списка источников света. Если ни один экземпляр списка источников света не указан  то используется весь свет от экземпляров в сцене.
Пример визуализации шейдеров с настроенными списками источников света.

Как видите, каждый шейдер в mental ray может быть настроен уникальным образом для визуализации как отдельных эффектов затенения, так и различных моделей освещения. Каждый из описанных в этом посте шейдеров может быть основой для сложных шейдеров или их компонентов, имитирующих различные материалы. В последующих постах, мы рассмотрим другие шейдеры входящие в состав mental ray 4 Maya. Научимся использовать шейдеры текстурных карт и процедурных текстур, а также применение других методов затенения.

В следующем посте, мы рассмотрим более специфические шейдеры материалов, которые позволяют имитировать различные физически точные модели затенения. К таким шейдерам относятся path_material и transmat входящие в библиотеку Physiscs Shaders.

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


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

mental ray Standalone Global Review

mental ray 4 Maya | Shaders Guide
- mental ray 4 Maya | Shaders Guide | mib_glossy_refraction
- mental ray 4 Maya | Shaders Guide | шейдеры mib_illum_*

3 комментария:

  1. Дмитрий, специально зарегистрировалась, чтобы написать вам СПАСИБО!!! Вы взялись за великое дело, надеюсь доведете его до конца:) Для меня ментал темный лес и я очень рада, что нашла ваш блог. Уверена, он облегчит мою жизнь и я таки постигну тайну рендеринга в майа))

    ОтветитьУдалить
  2. Вы написали что Ward не является физически точным затенителем. Я сделал ряд тестов сравнения спекуляров arch&design материала со всеми остальными (Блинн, Фонг, Уорд, Кук-Торренс). Учитывались факторы: угол к камере, цвет, форма, значения глосси. В итоге спекуляр arch&design похож на спекуляр Уорда примерно на 95% на всех факторах. С остальными разница намного больше, они просто другие. Так вот вопрос, какой алгоритм самый физически точный? Я читал что Кук-Торренс, но почему в arch&design тогда используется Уорд?
    P.S. И заодно, если знаете, подскажите, какой алгоритм используется в arch&design для реальных глосси отражений. Он похож на Ashikhmin, но с ограниченным глосси до половины.

    ОтветитьУдалить
    Ответы
    1. Здравствуйте, по идее, шейдеры относящиеся к библиотеке mib_illum_* не являются физически корректными из-за не реализованных в них отражений и преломлений (raytraced reflection & refraction). Отражения и преломления в них, реализуются за счет подключения шейдеров mib_illum_* к шейдерам mib_glossy_reflection и mib_glossy_refraction. А шейдер Ward как раз реализует только анизотропные подсветки (блики), не не формирует отражения и преломления, как это делает шейдер mia_material (Arch&Design).

      Удалить