Полное руководство по работе с шейдерами в Cycles
Автор: Greg Zaal
http://3dmodelizm.ru/uroki-3d-max/3dmax-lessons-2/261-the-cycles-shader-encyclopedia
http://3dmodelizm.ru/uroki-3d-max/3dmax-lessons-2/261-the-cycles-shader-encyclopedia
Ноды Cycles кажутся вам сложными и запутанными? Вы в этом не одиноки.
В то время как ноды Cycles предлагают нам безграничный контроль над материалами, многие пользователи всё ещё блуждают в лабиринтах его опций, не понимая многих из них.
Именно по этой причине была написана данная статья в попытке сделать невозможное: объяснить каждый шейдер Cycles простым для пониманий языком.
Diffuse BSDF (Материал рассеивания)
Что он делает: Поглощает свет и рассеивает (Diffuse в переводе с англ.) с нулевым отражением.
Используется для: Неотражающих поверхностей, таких как бумага или стены. Или для смешивания с другими шейдерами.
Свойства
Roughness (Шероховатость)
Возможно вы пробовали менять этот небольшой слайдер и, глядя на экран, находились в замешательстве от того, что ничего не изменилось. Однако изменения есть, но очень лёгкие:
Roughness добавляет еле заметный, микроскопический уровень шероховатости на поверхность.
Где это используется? Везде, где нужен очень тонкий эффект шероховатости, который практически не заметен человеческому глазу, например, ткань, не обработанная древесина и песок:
Glossy BSDF (Глянцевый материал)
Что он делает: Отражает свет и окружающие объекты
Используется для: Добавления отражений любым предметам
Это очень часто используемый шейдер, особенно в комбинации с diffuse шейдером (используется Mix Shader, который будет описан позже) при создании таких распространённых материалов, как пластик, металл, керамика и дерево:
Модель стола от 1DInc, дракон - Stanford University
Свойства
Distribution Function (Функция распределения)
Определяет математически как рассчитывается «размытие».
Какой лучше использовать? Зависит от ситуации, а также от ваших личных предпочтений.
Я считаю, что Beckmann отлично подходит для металлов, а GGX для всего остального. Ashikhmin-Shirley (модель Ашихмина-Ширли) был добавлен намного позже, и имеет что-то среднее между двумя предыдущими. Также, вы не увидите разницы между материалами, если параметр Roughness установлен на 0.
Roughness (шероховатость)
Этот параметр просто управляет размытием отражений, являясь по сути имитацией микроскопических неровностей на поверхности материала:
Anisotropic BSDF (Анизотропия)
Что он делает: Ведёт себя практически также, как и шейдер Glossy, но искажает отражения в определённом направлении.
Используется для: Шлифованный металл или материалы, где свет отражается неравномерно, как например, дно сковороды.
Свойства
Distribution Function (Функция распределения)
Это те же самые функции распределения, что и в шейдере Glossy, но различия между ними чуть более заметны:
Anisotropy (Анизотропия)
Значения от -1.0 до 1.0, которые управляют степенью растяжения. Отрицательные значения растягивают отражения по горизонтали, а положительные по вертикали. При значении 0.0, получится тот же самый шейдер Glossy.
Rotation (Вращение)
Используется для поворота направления искажённого отражения. Начинается от 0.0 и заканчивается 1.0, что является поворотом от 0 до 360 градусов. Чаще всего используются значения между 0.0 и 0.5 (180 градусный поворот, выглядит будто ничего не произошло).
Tangent (Тангенс)
Фактически, Tangent управляет осью, которая будет использована для искажения отражений. Используйте ноду Tangent, чтобы задать направление.
Анизотропия с тангенсами: ось Z, ось Y, UV
Смотрите урок: Введение в шейдинг с анизотропией
Glass BSDF (Стекло)
Что он делает: Ведёт себя как реальное стекло, преломляет и отражает свет, когда он попадает на поверхность, в соответствии с IOR (Коэффициент преломления).
Используется для: Стекла, воды или других отражающих, преломляющих материалов, таких как драгоценные камни.
Урок: как создать бокал пива и Черепаха с кристаллами (Автор: Jeepster)
Свойства
Distribution Function (Функция распределения)
И снова, это просто функции, определяющие алгоритм, который будет использован для расчёта вида размытых отражений и преломлений, но в этот раз опция Ashikhmin-Shirley (модель Ашихмина-Ширли) не доступна.
Разница между Beckmann и GGX
Roughness (Шероховатость)
Имитирует незримый рельеф и царапинки на поверхности, которые могут выглядеть как заиндевевшее/матовое стекло.
Разница между параметрами Roughness: 0 и 0.2
IOR
Коэффициент преломления, определяет степень отклонения лучей света, проходящих сквозь поверхность, а также насколько будут видимыми отражения.
Вы можете найти несколько таблиц со значениями коэффициентов преломления для различных материалов в интернете (cgsociety.org, pixelandpoly.com и IOR) и многие из них будут слабо отличаться, потому что IOR изменяется в зависимости от того насколько нагрет материал, но вот вам для начала несколько материалов:
- Вода: 1.33
- Стекло: 1.5
- Алмаз: 2.4
Refraction BSDF (Преломление)
Что он делает: Ведёт себя, как и шейдер Glass, за исключением отсутствия настроек отражения.
Используется в: Особых случаях, когда нужно преломление света без отражений. Например, искажения раскалённого воздуха и чёрные дыры.
Спасибо gandalf3 за этот великолепный Урок создания чёрной дыры.
Transparent BSDF (Прозрачность)
Что он делает: Полностью прозрачный при белом цвете, и окрашивается при расцветке.
Используется: Вместе с другими материалами для создания прозрачных частей материала.
Сам по себе невидимый и весьма бесполезный – но в сочетании с изображениями, содержащими альфа канал, может принимать вид сложных объектов, как например, листья или волосы.
Стекло без преломлений, Sponza Atrium автор: Marko Dabrovic (скачать blend файл)
Translucent BSDF (Просвечивающий материал)
Что он делает: Позволяет свету проходить насквозь.
Используется для: Тонких объектов, таких как трава или бумага. Совмещается с другими шейдерами, например, с diffuse, для достижения большего эффекта реализма.
Это долгое время вводило меня в замешательство, пока я не понял, что его нужно использовать не отдельно самого по себе, а в связке с другими шейдерами, для того чтобы добавить возможность прохождения лучей света сквозь них.
Видите, как подсвечивается плоскость, когда свет направлен с обратной стороны? Именно так работает шейдер translucent в отдельности.
Здесь очень важно количество отражений (отскоков) света. Когда свет попадает вовнутрь меша, и мы позволяем ему отражаться внутри, часть этого света возвращается сквозь поверхность и подсвечивает переднюю часть:
Сам по себе он может быть бесполезен, но, если мы смешаем его, скажем, с шейдером diffuse, мы можем получить довольно интересные материалы.
Только Diffuse, diffuse и translucent, только translucent
Не стоит путать его с шейдером Sub-Surface Scatting (о котором мы поговорим позже).
Используйте шейдер translucent только когда материал очень тонкий (бумага, трава, листья и т.п.).
Velvet BSDF (Вельвет)
Что он делает: Преломляет (отклоняет) свет, как это происходит в вельветовой ткани. Используется для ткани и одежды.
Вам может показаться, что он похож на шейдер Diffuse, только с большим тёмным пятном по центру:
Сравнение Diffuse и Velvet
Свойства
Sigma
Сокращённое значение шероховатости, которое управляет размером тёмной области, где большее значение означает меньший размер тёмного пятна.
Toon BSDF (грубо говоря «Мультяшный»)
Что он делает: Создаёт шейдинг в стиле мультфильма или комикса.
Используется: В особых случаях, когда вам нужен не фотореалистичный мультяшный стиль.
Свойства
Component (компонента)
Выбор между Diffuse и Glossy – различие в том, что diffuse это независимая от ракурса составляющая (внешний вид отдельной точки на поверхности не изменяется от изменения положения камеры относительно объекта), а glossy зависит от ракурса.
Компоненты Toon (diffuse и glossy)
Size (размер)
Выбор размера формы окружности – обычно для Diffuse используется большой размер, а для Glossy маленький.
Слева: diffuse с маленьким и большим размером. Справа: glossy с маленьким и большим размером
Smooth (сглаживание)
При использовании составляющей Glossy, этот параметр схож с управлением шероховатости и размытием отражений. Для diffuse, он размывает/сглаживает форму окружности.
Слева: diffuse с маленьким и большим значением сглаживания. Справа: glossy с маленьким и большим значением сглаживания.
Subsurface Scattering (Подповерхностное рассеивание)
Что он делает: Имитирует рассеивание света под поверхностью объекта.
Используется для: Кожи, воска, молока и многих видов пищи.
Скан головы от Ten 24
Свойства
Falloff (затухание)
Аналог функций распределения, определяющий, каким алгоритмом будет производится просчёт затухания света, который проходит сквозь материал. Существует очень незаметное различие между двумя опциями (Cubic и Gaussian), однако информация об измерениях обычно приравнивается к Гауссовой функции (Gaussian) (смотреть: NVidia, Arnold, Matt Heimlich), а кубическая (Cubic) даёт дополнительный параметр «Sharpness».
Scale (Масштаб)
Определяет насколько глубоко внутрь поверхности может проникнуть свет.
Radius (Радиус)
Дополнительный способ определить глубину проникновения света, но в этот раз можно задать значения цветовых каналов по-отдельности. Это означает, что мы можем задать определённый оттенок цвета, например, когда внутри кожи свет приобретает красный оттенок. Вы также можете подать определённый цвет на вход этого параметра.
Справа радиус больше для красного цвета
Sharpness (Резкость)
Эта опция доступна только при выборе Cubic Falloff. Она позволяет рёбрам оставаться более чёткими, а также может понизить эффект тёмных краёв.
Texture Blur (Размытие текстуры)
Вполне очевидно, что эта опция используется для размытия текстуры (не важно подключена ли она на вход Colour), но возможно результат не оправдает ваших ожиданий. Радиус размытия остаётся постоянным, и он аналогичен входу Scale. Всё что контролирует слайдер Texture Blur, это в каком соотношении размытая текстура будет смешиваться с оригинальной, таким образом, при 0.0 вы получите полностью чёткую текстуру, а при 0.5 вы получите наполовину чёткую текстуру, плавно переходящую в размытую версию поверх неё. При значении 1.0, вы получите только размытую текстуру.
Это будет выглядеть будто определённые цвета текстуры перетекают в поверхность под ней. Скорее всего, вам не придётся часто пользоваться этой опцией, поскольку обычно текстуры создаются из фотографий, а они уже включают в себя достаточно эффекта размытия.
Emission (Излучение)
Что он делает: В прямом смысле излучает свет и освещает окружающие объекты.
Используется: при создании объектов, которые должны светиться или быть яркими, например, как лампочки, искры, огонь или даже источник света за кадром.
Свойства
Strength (Сила)
Интенсивность/яркость излучения света.
Background (Задний план)
Одна и также сцена, освещённая различными HDR картами
Этот шейдер доступен только в нодах World, и используется для излучения света от окружающей среды.
Вы можете использовать его, чтобы добавить текстуру неба для имитации яркого солнечного дня, или HDR изображения для более разнообразных вариантов освещения.
Здесь можно посмотреть урок, о том, как использовать HDR в качестве освещения в Cycles.
Hair BSDF (Материал волос)
Что он делает: Поглощает и отражает свет – но специфическим для волос способом.
Используется для: волос и шерсти.
Этот интересный шейдер похож на некую смесь шейдеров diffuse, translucent и anisotropic.
Волосы – это общеизвестная головная боль для компьютерной графики. Не только потому что их сложно создать и правильно причесать, но и по причинам больших затрат ресурсов, как на рендеринг, так и на симуляцию. Всё это по причине того, что волосы в основе своей состоят из громадного количества микроскопической геометрии, которая вместе должна выглядеть правильно.
Преимущество данного шейдера в том, что нам нет необходимости заботиться о том, как будет выглядеть каждая прядь, нам остаётся думать лишь о том, чтобы наш лохматый персонаж выглядел хорошо. Да, конечно вы можете создать отличный материал для волос при помощи шейдеров diffuse, glossy и translucency или SSS, но это потребует очень много времени на рендеринг. Поэтому, данный шейдер урезает и делает очень умное усреднение того, как будет выглядеть каждая прядь, глядя издалека. Пряди могут выглядеть довольно ужасающе, если посмотреть на них с близи, и даже не думайте использовать этот шейдер на обычной геометрии (ну ладно, вот здесь это смотрится очень даже круто), но если использовать его на волосах в нормальном масштабе, то он работает превосходно.
Свойства
Component (компонента)
Компонента Reflection – это свет, который отразился от поверхности волос. Transmission – это свет, который проходит сквозь волосы и выходит с другой стороны. Чаще всего приходится использовать две ноды – одна с Reflection, а другая с Transmission, смешанные между собой.
Компоненты волос (transmission и reflection)
Offset (смещение)
Помните параметр Rotation в шейдере Anisotropic? Это практически тоже самое, только с разницей в названии и единицах измерения в градусах. Небольшая несогласованность в интерфейсе :)
По природе, волосы имеют направленную структуру. И отражение/пропускание света будет искажаться в определённом направлении. Параметр Offset позволяет нам вращать направление искажения.
Вверху: reflection с увеличенным смещением. Внизу: transmission с увеличенным смещение.
Roughness U/V (Шероховатость)
Ещё одно различие с шейдером Anisotropic – эти два параметра управляют шероховатостью в направлении искажения света, и перпендикулярно ему. Перестановка значений приведёт к тому же эффекту, что и Offset в 90 градусов. Но также, это позволяет нам придать волосам больший или меньший блеск, и управлять силой эффекта анизотропии.
Ambient Occlusion (Затенение в углах)
Что он делает: Просчитывает тёмные участки в углах и щелях.
Используется для того, чтобы: подчеркнуть соприкосновение поверхностей или мнимого внешнего освещения от окружающей среды.
AO или сокращённо – Ambient Occlusion, обычно используется для всей сцены с использованием прохода AO. Но если вы захотите большего контроля или же добавить только один объект, то этот шейдер также может вам пригодиться.
Использование метода, описанного выше, для удаления AO на определённом объекте.
Кстати, этот шейдер на самом деле излучает свет, так что будьте осторожны при его использовании вне стандартного прохода рендера.
Расстояние AO управляется теми же настройками что и для World AO.
Свойства
Color (Цвет)
Это цвет яркой части AO, тёмные же участки всегда будут чёрного цвета.
Holdout (вырезание)
Что он делает: Проделывает прозрачное отверстие в вашем рендере.
Используется при: монтаже. Например, для создания объекта из видео, отбрасывающего тень, но при этом, чтобы не было видно никаких цифровых объектов вокруг него.
Объект всё также отбрасывает тень, но та часть рендера где был объект будет прозрачной – конечно же если вы включили опцию «Transparent» на панели Film.
Volume Absorption (Поглощающий объём)
Что он делает: Воздействует на объём материала, плавно поглощая свет, становясь темнее в зависимости от уровня глубины объекта.
Используется для: Имитации мутной воды и цветных жидкостей или стекла.
В отличие от предыдущего шейдера, этот воздействует не на поверхность объекта, а на его физический объём. И в этом случае он медленно поглощает свет, который уходит в глубь объекта.
Свойства
Density (Плотность)
Определяет густоту объёма. Более высокая плотность поглощает больше света, при этом делая цвета насыщеннее и темнее.
Volume Scatter (Рассеивающий объём)
Что он делает: Рассеивает свет, проходящий сквозь объект.
Используется для: Облаков, дыма и дымки.
Как и предыдущий шейдер, он воздействует на объём объекта, а не на поверхность – и на этот раз, он рассеивает свет, вместо того, чтобы поглощать его. Применение шейдера Volumetric Scatter на ваш объект это другими словами, придание ему вида облака: свет проходит сквозь и вдоль объекта.
Предупреждаю, это может значительно увеличить время вашего рендеринга :)
Можете посмотреть примеры: Создание сцены с травяным лугом, Как создать облака при помощи Cycles
Свойства
Density (Плотность)
Это свойство определяет насколько густым будет выглядеть объект. Чем значение больше, тем меньше света пройдёт насквозь.
При самом большом значении он будет выглядеть как шейдер diffuse. Это потому что свет еле проникает в объект, из-за его густоты.
Anisotropy (Анизотропия)
Это может показаться более запутанным, чем в первом случае, но просто запомните, что анизотропия – это «различие свойств среды в различных направлениях внутри этой среды» (wikipedia). Это свойство определяет то как выглядит объект в зависимости от направления света и камеры.
Отрицательные значения дают большее отклонение для рассеивания света в обратном направлении, в то время как положительные значения рассеивают свет более прямо.
Это значит, что если свет и камера повёрнуты в одном направлении (например, фотовспышка), объём будет лучше всего виден при отрицательном значении анизотропии. Если свет и камера обращены в противоположные направления (как, например, когда вы смотрите на солнце), объём будет более видимым при положительном значении. Это проще усвоить на зрительном примере:
Для подробностей смотрите Blender Wiki.
Mix Shader (Смешивающий шейдер)
Что он делает: Объединяет два шейдера.
Используется: Практически для всего. Он смешивает свойства двух шейдеров вместе, что существенно для реального мира.
В реальном мире практически не существует материала, который обладал бы свойствами лишь одного шейдера. Это смесь различных свойств.
К примеру, керамическая чашка кофе определённо имеет шейдинг diffuse, но она также и блестящая, поэтому здесь присутствует и шейдер glossy.
Таким же образом мы можем рассмотреть и деревянный стол – дерево по большей мере имеет свойства шейдера diffuse, но также содержит немного глянцевого отражения.
Даже кусок толстого стекла имеет не только свойства прозрачности и отражения – он также немного замутнён внутри (объём поглощения).
Add Shader (шейдер добавления)
Что он делает: Комбинирует шейдеры вместе + добавляет совместные значения их освещённости (успешно нарушая при этом законы физики).
Используется для: Особых материалов, которые должны совмещать два источника света и не подразумевают фотореализм.
В реальном мире количество света, отражённого от поверхности не может превышать его изначальное количество, попавшее на поверхность. Но шейдер Add позволяет это сделать.
Если мы совместим Diffuse и Glossy шейдеры вместе, мы получим двойное значение энергии по сравнению с изначальным, что физически невозможно, но полезно для некоторых материалов, например, когда мы соединяем красное, зелёное и голубое стекло для достижения эффекта дисперсии.
Слева: Шейдер Add объединяет Diffuse и Glossy (нарушение закона сохранения энергии). Справа: Шейдер Mix, физически правильный (так правильно).
Так если этот Add шейдер такой коварный, почему же он тогда существует? Он не коварный, на самом деле он просто недопонятый проказник :)
Его можно использовать в разных местах, но только тогда, когда вы считаете, что без него не обойтись (или, когда вы намеренно хотите нарушить правила для достижения художественного эффекта).
Некоторые случаи, когда вы можете использовать Add Shader:
- Когда вы хотите раскрасить ваш Volume Scatter, добавив к нему Volume Absorption такого же цвета.
- Для двух шейдеров, которые излучают свет, например, Emission или Background.
- Когда вы уверены, что закон сохранения энергии будет соблюдаться – например, когда вы смешиваете шейдеры красного, зелёного и голубого стекла для создания дисперсии.
Что ж, вот и всё! Я надеюсь вам стало хотя бы чуточку понятнее, что из себя представляют шейдеры Cycles.
Комментариев нет:
Отправить комментарий