Энциклопедия шейдеров Cycles

12 марта 2015 40 комментариев Артем Слаква Материалы и текстуры

Вам кажутся ноды в Cycles немного запутанным? Вы не одиноки. Несмотря на то, что они предоставляют практически безграничный контроль над материалами, многие пользователи с трудом понимаю, что делать с этим лабиринтом вариантов. Именно поэтому эта статья осмеливается сделать невозможное: объяснить действие каждого шейдера простым русским языком.

Наслаждайтесь! -Greg Zaal
Перевод урока с сайта BlenderGuru

Diffuse BSDF

shader1
Что он делает: Получает свет и распространяет его без видимых отражений.
Используйте его для: Не отражающих поверхностей, таких как бумага или стены. Или для смешивания с другими шейдерами.

Свойства

shader2

Шероховатость (Roughness)

Вы, возможно, регулировали этот слайдер уставившись на экран и были в замешательстве, потому как не могли заметить практически никаких изменений. На самом то деле изменения происходят, но они незначительны:
shader3
Шероховатость добавляет очень тонкие, микроскопические уровни шероховатости поверхности. Где это использовать? Везде, где нужен очень мелкий уровень шероховатости, который едва виден на глаз. Это могут быть такие объекты как ткань, необработанные лесоматериалы или песок:
shader4

Glossy BSDF

shader5
Что он делает: Отражает свет и окружающюю среду.
Используйте его для: Добавления отражения к любому объекту.

Это очень распространенный шейдер, который часто используется в сочетании с диффузным шейдером (с использованием Mix Shader, обсудим позже), чтобы создать некоторые общие материалы, такие как пластик, металл, керамика и дерево:
shader6

Свойства

shader7

Функция распределения

Проще говоря, это математика. Это способ рассчета «размытости». Какой Вы должны использовать? Ну, это зависит от ситуации, а также Ваших предпочтений. Я думаю, что Beckmann хорошо работает для металлов, а GGX хорош для всего остального. Ashikhmin-Shirley был добавлен сравнительно недавно и, кажется, это своего рода что-то среднее между ними. Стоит отметить, что Вы не увидите никаких изменений при значении шероховатости равным 0.
shader8

Шероховатость (Roughness)

Управляет тем, как размывается отражение, имитируя микроскопические неровности на поверхности:
shader9

Anisotropic BSDF

shader10
Что он делает: Ведет себя точно также же, как и шейдер Glossy, но искажает отражение в одном направлении.
Используйте его для: Полированных металлов или материалов, где свет должен отражаться равномерно, как на сковородке.
shader11

Свойства

shader13

Функция распределения

Тоже самое, что и для шейдера Glossy, только разница между ними в данном случае более заметна:
shader12

Анизотропия (Anisotropy)

Значение от -1,0 до 1,0 контролирует степень растяжения. Отрицательные значения растягивают отражения по горизонтали, а положительные по вертикали. При значении 0 результат будет таким же, как если бы Вы просто использовали шейдер Glossy.
shader14

Вращение (Rotation)

Используется для поворота направления отражений. Диапазаон от 0 до 1 вращает от 0 до 360 градусов. Обычно регулируют данный параметр в диапазоне от 0 до 0,5, потому как при значении 180 отражение такое же как и при 360.
shader15

Тангенс (Tangent)

Tangent контролирует в направлении какой из осей использовать искажение отражения.
shader16

Z Y UV

Glass BSDF

shader17
Что он делает: Ведет себя как стекло. Искажает и отражает свет от поверхности в соответствии с индеком преломлления (IOR).
Используйте его для: Стекла, воды или любые другие отражающие и преломляющие свет материалы, такие как драгоценные камни.
shader18

Свойства

shader19

Функция распределения

Опять же, данная функция просто контролирует, какой алгоритм используется для вычисления внешнего вида отражений и преломлений, но в данном случае вариант Ashikhmin-Shirley недоступен.
shader20

Beckmann GGX
Шероховатость (Roughness)

Имитация мельчайших неровностей и царапин на поверхности, которые могут создать видимость матового стекла.
shader21

Шероховатость 0 Шероховатость 0.2
IOR

Индекс преломления света контролирует насколько свет преломляется, как он проходит через поверхность, а также, насколько хорошо видны отражения.
shader22
Вы можете найти несколько списков значений индекса преломления для различных материалов в Интернете. Большинство из них немного отличаются, потому что IOR на самом деле изменяется в зависимости от того, насколько горячий материал. Вот список самых распространеных значений:

  • Вода: 1.33
  • Стекло: 1.5
  • Алмаз: 2.4

Refraction BSDF

shader23
Что он делает: Ведет себя точно так же, как шейдер Glass, но без компонента отражения.
Используйте его для: Особых случаев, когда Вам нужно преломлять свет, но не отражать его. Используется для создания тепловой деформации и черных дыр.
shader24
shader25

Transparent BSDF

shader26
Что он делает: Полностью прозрачный когда белый, окрашивает когда цветной.
Используйте его для: Сочетания с другими материалами, чтобы создать прозрачные части объекта.
shader27
Сам по себе он невидим и довольно бесполезен, но в сочетании с изображениями с альфа каналом он может быть использован для создания сложных объектов, таких как листья или волосы.
shader28

Translucent BSDF

shader29
Что он делает: Позволяет свету проходить сквозь объект.
Используйте его для: Создания тонких объектов, таких как трава или бумага. Смешивают его с шейдером Diffuse для достижения более реалистичного результата.
shader30
Этот шейдер смущал меня в течение долгого времени, но это было до тех пор, пока я не понял, что он не предназначен для использования в одиночку, а должен быть объединен с другими шейдерами, чтобы позволить свету проходить сквозь них.
shader31
Обратите внимание на то, как плоскость светится только тогда, когда свет попадает на нее сзади. Что здесь действительно важно, так это количество отскоков света. После того как свет попадает внутрь и мы позволяем ему «скакать» внутри объекта, часть света в последствии покинет объект и подсветит его передние грани:
shader32
Еще раз, он не особо полезен само по себе, но если сочетать его с диффузным шейдером, мы можем создать действительно интересные материалы.
shader33

Только Diffuse Diffuse и Translucent Только Translucent

Не следует путать его с Sub-Surface Scatting (рассмотрим ниже).

Используйте полупрозрачный шейдер только тогда, когда материал тонкий (бумага, трава, листья…).

Velvet BSDF

shader34
Что он делает: Изгибает свет вокруг объекта как настоящий бархат. Используйте для одежды и ткани.
Используйте его для: Одежды и ткани.
Вы можете думать о нем, как о шейдере Diffuse, но с большим темным пятном в середине:
shader35

Diffuse Velvet
Свойства

shader36

Сигма (Sigma)

Контролирует значение шероховатости, тем самым изменяя размер темного пятна. Чем выше значения, тем меньше черное пятно.
shader37

Toon BSDF

shader38
Что он делает: Создает мультяшное затенение.
Используйте его для: Особых случаев, когда Вам нужно создать что-либо в нефотореалистичном мультяшном стиле.

Свойства

shader39

Компонент

Выбор между Diffuse и Glossy — разница в том, что диффузный вид независимая составляющая (появление определенной точки на поверхности не меняется, когда камера движется вокруг), а глянцевая зависит от вида.
shader40

Diffuse Glossy
Размер (Size)

Настраивает размер формы круга. Обычно большой размер, используется для Diffuse, и поменьше для Glossy.
shader41

Diffuse с большим/маленьким размером круга Glossy с большим/маленьким размером круга
Сглаживание (Smooth)

При использовании Glossy работает как контроль шероховатости и размывает отражения. Для Diffuse составляющей смягчает/размывает очертания круга.
shader42

Diffuse с большим/маленьким размытием Glossy с большим/маленьким размытием

Subsurface Scattering

shader43
Что он делает: Имитация рассеивания света под поверхностью объекта.
Используйте его для: Кожи, воска, молока и многих видов продуктов питания.
shader44

Свойства

shader45

Спад

Определяет какой алгоритм используется для вычисления постепенного спада света, когда он проходит через материал. Существует очень мало разницы между этими двумя вариантами (Cubic и Gaussian), поэтому, как правило, устанавливается функции Гаусса, а Cubic дает нам дополнительную опцию «Четкость».
shader46

Масштаб (Scale)

Управляет тем, насколько далеко свет может рассеиваться сквозь поверхность.
shader48

Радиус (Radius)

Еще один способ контролировать рассеивание света, только на этот раз с отдельными значениями для красного, зеленого и синего каналов. Это означает, что мы можем подкрасить рассеянный света определенным цветом, например, как кожа рассеивает более красный свет. Обратите внимание, что Вы можете подключить изображения к данному разъему.
shader49

Справа радиус для красного канала больше
Четкость (Sharpness)

Данная опция доступна только при использовании Cubic Falloff. Она не делает острые края слишком мягкими, но может уменьшить количество темных кромок.
shader50

Размытие текстуры (Texture Blur)

Очевидно, что это используется, чтобы размыть текстуру (все что подключено к входу цвет), но это, вероятно, не то, что вы ожидаете. Радиус размытия остается постоянным, так же, как и на входе Scale. Этот ползунок контролирует, сколько размытия смешивается с исходной текстурой. При значении 0,0 у Вас обычная чистая текстура, а при 0,5 у Вас половина чистой текстуры и половина размытой исчезающей на вершине объекта. При 1,0 Вы можете видеть только размытую текстуру. Это означает, что цвета текстуры будут размытыми под поверхностью объекта. Скорее всего Вам не придется часто использовать этот параметр так, как кожа создается с помощью фотографий, которые уже включают в себя эффект размытия.
shader51

Emission

shader52
Что он делает: Излучает свет и бросает его на окружающие предметы.
Используйте его для: Объектов которые должны излучать свет. Такие как: лампочки, искры, огонь или просто в качестве источника света.

Свойства

shader53

Сила (Strength)

Интенсивность/яркость излучаемого света.
shader54

Background

shader55

Одна и та же сцена с разными HDR

shader56
Этот шейдер доступен только при выборе нодов мира и используется, чтобы излучать свет окружающей среды. Вы можете использовать его, чтобы добавить текстуру неба или HDR-изображение для освещения сцены.

Hair BSDF

shader57
Что он делает: Поглощает и отражает свет, но специфическим образом.
Используйте его для: Волос и меха.

Этот шейдер как смесь диффузного, полупрозрачного и анизотропного шейдеров. Вообще, волосы головная боль в CG. Их очень трудно создать и уложить должным образом, а также трудно отрендерить так, чтобы они выглядели естественно. Происходит это все из-за того, что это слишком маленький геометрический объект и их слишком много.

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

Свойства

shader58

Компонент

Компонент Reflection отражает свет от поверхности волос. Transmission пропускает свет который проходит через волосы и выходит с другой стороны. Большую часть времени вы будете использовать два узла Hair BSDF: один с Reflection, другой с Transmission и смешать их вместе.
shader59

Transmission Reflection
Смещение (Offset)

Помните свойство Rotation анизотропного шейдера? Это тоже самое, но с другим именем и измеряется в градусах. Волосы по своей природе являются направленной вещью. И таким образом отражение/пропускание света будет искажено в одном направлении. Смещение позволяет нам контролировать вращение этого направления.
shader60

Вверху Reflection с увеличенным смещением Внизу Transmission с увеличенным смещением
Шероховатость U/V (Roughness U/V)

Другое несоответствие с шейдером Anisotropic — эти два свойства контролируют шероховатости в направлении перекоса света и перпендикулярно к нему. Инвертирование данных значений будет иметь тот же эффект, что и установка смещения на 90 градусов. Но, конечно, это также позволяет нам сделать волосы более или менее блестящая и контролировать силу эффекта анизотропии.

Ambient Occlusion

shader61
Что он делает: Рассчитывает темное затенение в углах и щелях.
Используйте его для: Подчеркивания точек соприкосновения и фальсификации освещения.

AO означает Ambient Occlusion и обычно используется для целых сцен с использованием прохода рендера. Но вы также можете использовать его лишь для какого-то одного объекта.
shader62

Данным способом можно удалить AO у конкретного объекта

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

Свойства

shader63

Цвет (Color)

Это цвет светлой части AO (затенение всегда черное).
shader64

Holdout

shader65
shader66
Что он делает: Создает прозрачную дыру в Вашем рендере.
Используйте его для: Используется в композитинге. Например создать объект, который отбрасывает тень, но при этом не блокирует остальные 3D-объекты за ним.

Чтобы объект бросал тень, но оставался при это прозрачным, необходимо отметить пункт Transparent на вкладке рендера в меню Film.

Volume Absorption

shader67
Что он делает: Влияет на объем материала постепенно поглощая освещение (чем глубже, тем темнее).
Используйте его для: Грязной воды, окрашенной жидкости или стекла.

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

Свойства

shader68

Плотность (Density)

Управляет толщиной объема. Чем выше плотность, тем больше света поглощается и тем темнее и насыщеннее цвет.
shader69

Volume Scatter

shader70
Что он делает: Рассеивает свет который проходит через объект.
Используйте его для: Облаков, дыма и тумана.

Как и в предыдущем случае, данный шейдер влияет не на поверхность, а на объем. Подключив данный шейдер к Вашему объекту Вы превратите его в облако и свет будет проходить сквозь него и вокруг него. Но будьте осторожны с ним. Он значительно увеличивает время рендеринга :)
shader71

Свойства

shader72

Плотность (Density)

Данная опция контролирует плотность объема. Чем выше значение, тем меньше света будет проходить сквозь объект.
shader73
При очень высоких значениях объект будет выглядеть практически как с диффузным шейдером.

Анизотропия (Anisotropy)

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

Mix Shader

shader75
Что он делает: Объединяет два шейдера вместе.
Используйте его для: Почти всего. Он смешивает свойства двух шейдеров вместе, что имеет важное значение в реальном мире.

В реальном мире практически не существует материалов обладающих свойствами одного шейдера. Всегда присутствуют различные свойства. Например, керамическая кружка помимо рассеивания света (diffuse), также его отражает (glossy).
shader76
Тоже самое применимо и к дереву. В основном оно состоит из диффузного шейдера, но также присутствует отражение.
shader77
Даже кусок стекла не только отражает и пропускает свет, но немного поглощает его (volume absorption).
shader78

Add Shader

shader79
Что он делает: Сочетает в себе шейдеры вместе + добавляет их значения света (фактически нарушая законы физики).
Используйте его для: Специальных материалов, в которых необходимо объединить два световых значения и они не должны быть фотореалистичными.

В реальном мире, количество света, которое отражается от поверхности не может быть больше, чем количество света, которое попало на поверхность. Но с помощью Add Shader мы можем добиться этого. Если мы соединим Diffuse и Glossy шейдеры вместе, мы в два раза увеличим количество энергии, что физически невозможно, но полезно для некоторых материалов. Например, если Вы хотите объединить красные, зеленые и синие шейдеры стекла для создания эффект дисперсии.
shader80

Add Shader: Diffuse + Glossy (нереалистично) Mix Shader: Diffuse + Glossy

Он может быть использован в некоторых случаях, но только там, где Вы знаете, что Вы делаете или, если намеренно хотите нарушить правила для творческой свободы. Случаи в которых необходимо использовать Add Shader:

  • Чтобы придать цвет шейдеру Volume Scatter с помощью Volume Absorption.
  • Для двух шейдеров, которые излучают свет, такие как Emission и Background.
  • Там где энергия должна сохраняться, как в случае с дисперсией света.

Ну вот и все! Надеюсь теперь у Вас есть четкое понимание того, что делают шейдеры в Cycles.

О сайте

На данном сайте Вы сможете найти множество уроков и материалов по графическому
редактору Blender.

Контакты

Для связи с администрацией сайта Вы можете воспользоваться следующими контактами:

Email:
info@blender3d.com.ua

Следите за нами

Подписывайтесь на наши страницы в социальных сетях.

На сайте Blender3D собрано огромное количество уроков по программе трехмерного моделирования Blender. Обучающие материалы представлены как в формате видеоуроков, так и в текстовом виде. Здесь затронуты все аспекты, связанные с Blender, начиная от моделирования и заканчивая созданием игр с применением языка программирования Python.

Помимо уроков по Blender, Вы сможете найти готовые 3D-модели, материалы и архивы высококачественных текстур. Сайт регулярно пополняется новым контентом и следит за развитием Blender.