Примеры Шейдерных Нод / Blender
Verge3D поддерживает практически все ноды, содержащиеся в Blender Shader Editor. Однако для большинства веб-задач связанных с рендером в реальном времени ограниченного набора шейдерных нод будет достаточно. Ниже мы перечислим те из них, которые используются в демонстрационных проектах Verge3D.
Входы и выходы нод, которые поддерживаются Verge3D, помечены зелеными галочками, а те которые не поддерживаются красными крестиками.
Содержание
- Шейдерные Ноды
- Output Nodes
- Input Nodes
- Texture Nodes
- Color Nodes
- Vector Nodes
- Converter Nodes
- World-Specific Nodes
- Оптимизация Производительности
Шейдерные Ноды
Эти ноды являются основными для любого материала, они отвечают за вычисление затенения поверхностей объектов. При создании проектов в Verge3D чаще всего используются нижеуказанные ноды:

Principled BSDF
Данная универсальная нода реализует физически корректную визуализацию модели (также известую как PBR). Она отлично подходит для создания большинства материалов в Verge3D.

Изменив всего несколько настроек в ноде Principled BSDF, можно достаточно быстро получить красивый материал. Для лучшего результата вы можете использовать ноду environment texture, которая обеспечит отражения и освещение основанное на выбранном изображении, или просто используйте уже готовые настройки окружения из шаблонного проекта Cube.

Diffuse BSDF
Данная нода реализует диффузный компонент PBR. Она используется для добавления в материал запечённой карты АО, а иногда в сочетании с нодой Glossy BSDF для большего контроля относительно Principled BSDF.

В следующем примере, Diffuse BSDF используется для того, чтобы добавить запечённую карту АО в материал хрома:

Glossy BSDF
Данная нода реализует отражающий компонент PBR. Она используется исключительно для металлических поверхностей или иногда в сочетании с Diffuse BSDF для большего контроля.

Emission
Данная нода используется, чтобы представлять неосвещенные (без тени) объекты. Также она используется для обозначения светящихся объектов в сочетании с постэффектом bloom в Verge3D.

В следующем упрощенном примере, Emission используется для незатенённых UI иконок:

Transparent BSDF
Данная нода реализует прозрачность материалов путём смешивания с другими шейдерными нодами, например с такими как Glossy BSDF.

Данная нода поддерживается частично. Она будет иметь большее сходство с окном просмотра Blender, если следовать следующим ограничениям:
- на входе Color должен быть строго белый цвет (R = 1, G = 1, B = 1)
- нода должна использоваться в самом конце дерева нод, т.е. подключаться перед Material Output через ноды Mix Shader или Add Shader (смотрите пример ниже) или непосредственно подключаться в разъем Surface Material Output
В упрощённом примере, указанном ниже, Transparent BSDF используется для материала стекла обтекателя:

Refraction BSDF
Данная нода отвечает за преломление материала, используя для этого карту окружения.

Ниже приведён простой пример использования:

Glass BSDF
Данная нода реализует PBR компоненты отражения и преломления.

Чтобы узнать больше информации о ноде Glass BSDF, ознакомьтесь с руководством Blender, пройдя по следующей ссылке.
Translucent BSDF
Данная нода отвечает за эффект прозрачности.

Чтобы узнать больше информации о ноде Translucent BSDF, ознакомьтесь с руководством Blender, пройдя по следующей ссылке.
Add Shader
Данная нода складывает свойства двух шейдеров.

Mix Shader
Данная нода смешивает два шейдера.

Output Nodes
Данные ноды являются конечной точкой шейдера. Для материалов типа Object доступны только нижеуказанные ноды (существует также специальная нода выхода для материалов типа World):

Material Output
Данная нода обеспечивает результат затенения поверхности.

Input Nodes
Эти ноды обеспечивают разнообразную вводную информацию для шейдера. Те ноды, которые среди них используются чаще всего в работе с Verge3D, указаны ниже:

Geometry
Эта нода обеспечивает геометрическую информацию (в мировом пространстве) для точки затенения. На данный момент Verge3D поддерживает только разъемы Position, Normal, Tangent, Incoming и Backfacing.

Attribute
Данная нода извлекает из меша атрибуты. На данный момент Verge3D поддерживает только атрибут Vertex Color.

Texture Coordinate
Данная нода обеспечивает развёртку или процедурно назначенные координаты для текстурирования. Verge3D использует первый слой UV развертки из списка слоёв доступных для меша.

UV Map
Данная нода извлекает определённый слой UV развертки из меша. В отличие от ноды Texture Coordinate, она работает с любым слоем UV развёртки доступных для меша.

Fresnel
Данная нода вычисляет соотношение отражённого и преломлённого света.

Layer Weight
Данная нода обеспечивает коэффицент смешения, который зависит от направления, в котором наблюдается поверхность объекта.

RGB
Данная нода передаёт шейдеру значение цвета.

Value
Данная нода передаёт шейдеру цифровое значение.

Camera Data
Данная нода передаёт информацию о расположении объекта относительно камеры.

Чтобы узнать больше информации о ноде Camera Data, ознакомьтесь с руководством Blender, пройдя по следующей ссылке.
Tangent
Данная нода задаёт тангенциальные направления. Если в значении Direction Type выставлена "UV Map", то вычисления касательных будет зависеть от активного слоя развертки выбранного меша, а не от слоя развертки указанного в самой ноде (этот параметр не поддерживается).

Чтобы узнать больше информации о ноде Tangent, ознакомьтесь с руководством Blender, пройдя по следующей ссылке.
Vertex Color
Данная нода передаёт значения вертексных цветов.

Чтобы узнать больше информации о ноде Vertex Color, ознакомьтесь с руководством Blender, пройдя по следующей ссылке.
Texture Nodes
С помощью данных нод в шейдер добавляются растровые изображения. При работе в Verge3D чаще всего используются следующие из них:

Checker Texture
Данная нода предоставляет растровое изображение с шахматным паттерном.

Чтобы узнать больше информации о ноде Checker Texture, ознакомьтесь с руководством Blender, пройдя по следующей ссылке.
Image Texture
Данная нода предоставляет файл изображения, для использования в шейдере в качестве текстуры.

ПРИМЕЧАНИЕ: некоторые опции поддерживаются частично
- режим интерполяции: Linear, Closest
- источник изображения: Single Image, Generated
- цветовое пространство: Linear, sRGB
Gradient Texture
Данная нода обеспечивает плавно меняющуюся цветовую гамму и её интенсивность.

Voronoi Texture
Данная нода предоставляет растровое изображение с диаграммой Вороного.

ПРИМЕЧАНИЕ: поддерживается только 3D измерение, что означает отсутствие поддержки ввода W
Noise Texture
Данная нода предоставляет растровое изображение с текстурой шумома.

ПРИМЕЧАНИЕ: поддерживается только 3D измерение, что означает отсутствие поддержки ввода W
Wave Texture
Данная нода предоставляет растровое изображение с волнистым паттерном.

Чтобы узнать больше информации о ноде Wave Texture, ознакомьтесь с руководством Blender, пройдя по следующей ссылке.
Color Nodes
Данные ноды обеспечивают разнообразные взаимодействия с цветом. При работе в Verge3D чаще всего используются следующие из них:

Bright/Contrast
Данная нода используется для изменения яркости и контраста у цветового входа.

Чтобы узнать больше информации о ноде Bright/Contrast, ознакомьтесь с руководством Blender, пройдя по следующей ссылке.
Hue Saturation Value
Данная нода используется для изменения HSV модели цветового входа.

Чтобы узнать больше информации о ноде Hue Saturation Value, ознакомьтесь с руководством Blender, пройдя по следующей ссылке.
Mix
Данная нода смешивает два цветовых входа вместе, используя разнообразные режимы.

RGB Curves
Данная нода используется для коррекции цвета и регулировки уровней.

Invert
Данная нода инвертирует цветовой вход, создавая негатив.

Gamma
Данная нода применяет гамма-коррекцию к цветовому входу.

Vector Nodes
Данные ноды обеспечивают разнообразные операции с векторами. При работе в Verge3D чаще всего используются следующие из них:

Bump
Данная нода генерирует карту рельефа.

Чтобы узнать больше информации о ноде Bump, ознакомьтесь с руководством Blender, пройдя по следующей ссылке.
Mapping
Данная нода используется для изменения растрового изображения, включая перемещение, вращение и масштабирование.

Normal
Данная нода используется для определения вектора нормалей и генерации скалярного произведения.

Чтобы узнать больше информации о ноде Normal, ознакомьтесь с руководством Blender, пройдя по следующей ссылке.
Normal Map
Данная нода определяет направление нормаей из растрового изображения, интерпретируемого как карта нормалей.

ПРИМЕЧАНИЕ: поддерживается только Tangent Space
Vector Curves
Данная нода используется для отображения входного вектора в виде кривой.

Vector Rotate
Данная нода используется для вращения входного вектора вокруг точки опоры.

Vector Transform
Данная нода используется для преобразования входного вектора между пространствами координат мира, камеры или объекта.

Converter Nodes
Данные ноды предоставляют данные для преобразования между различными типами. При работе в Verge3D чаще всего используются следующие из них:

Clamp
Данная нода фиксирует входное значение в указанном диапазоне.

ПРИМЕЧАНИЕ: поддерживается только тип фиксации Min Max
Чтобы узнать больше информации о ноде Clamp, ознакомьтесь с руководством Blender, пройдя по следующей ссылке.
Color Ramp
Данная нода преобразует значения в цвета, используя градиент.

ПРИМЕЧАНИЕ: некоторые настройки поддерживаются частично
- цветовой режим: поддерживается только RGB
- интерполяция: Linear, Constant
Map Range
Данная нода используется для изменения значения из одного диапазона в другой.

ПРИМЕЧАНИЕ: поддерживается только Linear интерполяция
Чтобы узнать больше информации о ноде Map Range, ознакомьтесь с руководством Blender, пройдя по следующей ссылке.
Shader to RGB
Данная нода заменяет шейдерные вычисления простым цветом. Обычно используется для нефотореалистичного рендеринга.

RGB to BW
Данная нода преобразует цвет в чёрно-белое изображения, используя яркость.

Math
Данная нода предоставляет математические вычисления с цифровыми значениями:
- Add, Subtract, Multiply, Divide, Multiply and Add, Power, Logarithm, Square Root, Inverse Square Root, Absolute
- Minimum, Maximum, Less Than, Greater Than, Sign, Compare, Smooth Minimum, Smooth Maximum
- Round, Floor, Ceil, Truncate, Fraction, Modulo, Wrap, Snap, Ping-pong
- Sine, Cosine, Tangent, Arcsine, Arccosine, Arctangent, 2-Argument Arctangent, Hyperbolic Sine, Hyperbolic Cosine, Hyperbolic Tangent
- Convert to Radians, Convert to Degrees

Vector Math
Данная нода выполняет операции с векторами:
- Add, Subtract, Multiply, Divide
- Cross Product, Project, Reflect, Dot Product
- Distance, Length, Scale, Normalize
- Absolute, Minimum, Maximum, Floor, Ceil, Fraction, Modulo, Wrap, Snap
- Sine, Cosine, Tangent

Combine/Separate Nodes
Данные ноды объединяют цвет/вектор из отдельных каналов или разделяют их на отдельные каналы.

World-Specific Nodes
These nodes are either available only for World materials (Background, World Output), or typically used with World materials (Environment Texture, Light Path, Sky Texture):

Background
Данная нода используется для настройки фонового цвета, а также для освещения и отражений на основе изображения. Она редко используется сама по себе, потому что обеспечиват только монотонный цвет. Вы можете сочетать её с environment texture для наилучшего результата.

World Output
Данная нода является конечной точкой материалов типа World. Она представляет результаты затенения окружения.

Environment Texture
Данная нода предоставляет файл изображения, который будет использован в шейдере в качестве текстуры среды. Изображения должны быть равноугольной проекцией и, как правило, HDR формата, хотя форматы JPEG и PNG также можно использовать.
Шаблон default cube уже содержит в себе HDR изображение, которое вы можете использовать в своих проектах.

ПРИМЕЧАНИЕ: некоторые опции поддерживаются частично
- режим интерполяции: Linear, Closest
- источник изображения: Single Image, Generated
- цветовое пространство: Linear, sRGB
На примере, указанном ниже, изображение формата JPEG одновременно обеспечивает освещение, отражения и фон на основе изображения.

Light Path
Данная нода предоставляет шейдеру различную информацию логического типа. Для того, чтобы контролировать видимость environment texture на фоне, в Verge3D поддерживается выход Is Camera Ray.

Следующая типичная настройка используется для обеспечения освещения окружающей среды и отражений сцены, но при этом просто отображает белый сплошной цвет на заднем плане:

Sky Texture
Данная нода предоставляет процедурно сгенерированную текстуру небосвода.

ПРИМЕЧАНИЕ: данная нода поддерживается только в Cycles и не работает с движком Eevee.
Чтобы узнать больше информации о ноде Sky Texture, ознакомьтесь с руководством Blender, пройдя по следующей ссылке.
Оптимизация Производительности
Оптимизация Principled BSDF
Несмотря на то, что Principled BSDF является наиболее часто используемой нодой, она требует большое количество вычислительной мощности вашего графического процессора и замедляет загрузку приложений. Это становится особенно актуально, когда в вашей сцене много материалов созданных на основе Principled BSDF
Есть несколько способов оптимизировать материалы основанные на Principled BSDF:
- Замените Principled BSDF на Diffuse BSDF для матовых, неметаллических поверхностей.
- Замените Principled BSDF на Glossy BSDF для металлических материалов.
- Замените Principled BSDF на Emission если вы визуализируете материалы, в которых важен только цвет.
- Настройте свойства Cubemap Size или IBL Environment Mode для улучшения характеристик освещения окружающей среды.
- Пересоберите шейдер в совместимый с glTF 2.0 model.
Имейте в виду, что последние два метода приведут к тому, что ваши материалы будут выглядеть по-другому по сравнению с окном просмотра Blender.
Медленные Процедурные Текстуры
Существуют процедурные текстуры, которые снижают производительность:
- Noise Texture, особенно с высоким значеним Detail (16 приведёт к сбою в производительности).
- Voronoi Texture используйте параметр F1, так как он работает намного лучше, чем любой другой.
Вы можете запечь данные текстуры в растровые изображения и использовать ноду Image Texture, чтобы достигнуть лучшей производительности.
Остались вопросы?
Задайте их на нашем форуме!