Справочник поддерживаемых шейдерных нод / Блендер
«Вердж3Д» поддерживает почти все ноды шейдерного редактора «Блендера». Однако для большинства задач связанных с рендерингом в реальном времени ограниченного набора шейдерных нод будет достаточно. Ниже мы перечислим те из них, которые используются в демо-приложениях и примерах «Вердж3Д».
Входы и выходы нод, которые поддерживаются в «Вердж3Д», помечены зелеными галочками, а те которые не поддерживаются — красными крестиками.
Содержание
- Шейдерные ноды
- Выходные ноды
- Входные ноды
- Текстурные ноды
- Цветовые ноды
- Векторные ноды
- Ноды преобразования
- Ноды специфичные для материала мира
- Оптимизация производительности
Шейдерные ноды
Эти ноды являются основой любого материала, поскольку отвечают за вычисление затенения на поверхности объектов. При создании проектов в «Вердж3Д» чаще всего используются следующие шейдерные ноды:
Principled BSDF
Данная универсальная нода реализует физически корректную визуализацию модели (также известую как PBR). Она отлично подходит для создания большинства материалов в Вердж3Д.
Изменив всего несколько настроек в ноде Principled BSDF, можно достаточно быстро получить красивый материал. Для лучшего результата вы можете использовать ноду environment texture, которая обеспечит отражения и освещение основанное на выбранном изображении, или просто используйте уже готовые настройки окружения из шаблонного проекта Cube.
Чтобы узнать больше информации о ноде Principled BSDF, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Diffuse BSDF
Данная нода реализует диффузный компонент PBR. Она используется для добавления в материал запечённой карты АО, а иногда в сочетании с нодой Glossy BSDF для большего контроля относительно Principled BSDF.
В следующем примере, Diffuse BSDF используется для того, чтобы добавить запечённую карту АО в материал хрома:
Чтобы узнать больше информации о ноде Diffuse BSDF, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Glossy BSDF
Данная нода реализует отражающий компонент PBR. Она используется исключительно для металлических поверхностей или иногда в сочетании с Diffuse BSDF для большего контроля.
Чтобы узнать больше информации о ноде Glossy BSDF, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Emission
Данная нода используется, чтобы представлять неосвещенные (без тени) объекты. Также она используется для обозначения светящихся объектов в сочетании с постэффектом bloom в Вердж3Д.
В следующем упрощенном примере, Emission используется для незатенённых UI иконок:
Чтобы узнать больше информации о ноде Emission, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Transparent BSDF
Данная нода реализует прозрачность материалов путём смешивания с другими шейдерными нодами, например с такими как Glossy BSDF.
Данная нода поддерживается частично. Она будет иметь большее сходство с окном просмотра Блендер, если следовать следующим ограничениям:
- на входе Color должен быть строго белый цвет (R = 1, G = 1, B = 1)
- нода должна использоваться в самом конце дерева нод, т.е. подключаться перед Material Output через ноды Mix Shader или Add Shader (смотрите пример ниже) или непосредственно подключаться в разъем Surface Material Output
В упрощённом примере, указанном ниже, Transparent BSDF используется для материала стекла обтекателя:
Чтобы узнать больше информации о ноде Transparent BSDF, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Refraction BSDF
Данная нода отвечает за преломление материала, используя для этого карту окружения.
Ниже приведён простой пример использования:
Чтобы узнать больше информации о ноде Refraction BSDF, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Glass BSDF
Данная нода реализует PBR компоненты отражения и преломления.
Чтобы узнать больше информации о ноде Glass BSDF, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Translucent BSDF
Данная нода отвечает за эффект прозрачности.
Чтобы узнать больше информации о ноде Translucent BSDF, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Add Shader
Данная нода складывает свойства двух шейдеров.
Чтобы узнать больше информации о ноде Add Shader, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Mix Shader
Данная нода смешивает два шейдера.
Чтобы узнать больше информации о ноде Mix Shader, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Выходные ноды
Данные ноды являются конечной точкой шейдера. Для материалов типа Object доступны только нижеуказанные ноды (существует также специальная нода выхода для материалов типа World):
Material Output
Данная нода обеспечивает результат затенения поверхности.
Чтобы узнать больше информации о ноде Material Output, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Входные ноды
Эти ноды обеспечивают разнообразную вводную информацию для шейдера. Те ноды, которые среди них используются чаще всего в работе с Вердж3Д, указаны ниже:
Geometry
Эта нода обеспечивает геометрическую информацию (в мировом пространстве) для точки затенения. На данный момент Вердж3Д поддерживает только разъемы Position, Normal, Tangent, Incoming и Backfacing.
Чтобы узнать больше информации о ноде Geometry, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Attribute
Данная нода извлекает из меша атрибуты. На данный момент Вердж3Д поддерживает только атрибут Vertex Color.
Чтобы узнать больше информации о ноде Attribute, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Texture Coordinate
Данная нода обеспечивает развёртку или процедурно назначенные координаты для текстурирования. Вердж3Д использует первый слой UV развертки из списка слоёв доступных для меша.
Чтобы узнать больше информации о ноде Texture Coordinate, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
UV Map
Данная нода извлекает определённый слой UV развертки из меша. В отличие от ноды Texture Coordinate, она работает с любым слоем UV развёртки доступных для меша.
Чтобы узнать больше информации о ноде UV Map, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Fresnel
Данная нода вычисляет соотношение отражённого и преломлённого света.
Чтобы узнать больше информации о ноде Fresnel, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Layer Weight
Данная нода обеспечивает коэффицент смешения, который зависит от направления, в котором наблюдается поверхность объекта.
Чтобы узнать больше информации о ноде Layer Weight, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
RGB
Данная нода передаёт шейдеру значение цвета.
Чтобы узнать больше информации о ноде RGB, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Value
Данная нода передаёт шейдеру цифровое значение.
Чтобы узнать больше информации о ноде Value, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Camera Data
Данная нода передаёт информацию о расположении объекта относительно камеры.
Чтобы узнать больше информации о ноде Camera Data, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Tangent
Данная нода задаёт тангенциальные направления. Если в значении Direction Type выставлена "UV Map", то вычисления касательных будет зависеть от активного слоя развертки выбранного меша, а не от слоя развертки указанного в самой ноде (этот параметр не поддерживается).
Чтобы узнать больше информации о ноде Tangent, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Vertex Color
Данная нода передаёт значения вертексных цветов в шейдер.
Чтобы узнать больше информации о ноде Vertex Color, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Object Info
Эта нода служит для передачи параметров объекта (и материала) в шейдер.
Чтобы узнать больше информации о ноде Object Info, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Текстурные ноды
С помощью данных нод в шейдер добавляются растровые изображения. При работе в Вердж3Д чаще всего используются следующие из них:
Checker Texture
Данная нода предоставляет растровое изображение с шахматным паттерном.
Чтобы узнать больше информации о ноде Checker Texture, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Image Texture
Данная нода предоставляет файл изображения, для использования в шейдере в качестве текстуры.
ПРИМЕЧАНИЕ: некоторые опции поддерживаются частично
- режим интерполяции: Linear, Closest
- источник изображения: Single Image, Generated
- цветовое пространство: Linear, sRGB
Чтобы узнать больше информации о ноде Image Texture, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Gradient Texture
Данная нода обеспечивает плавно меняющуюся цветовую гамму и её интенсивность.
Чтобы узнать больше информации о ноде Gradient Texture, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Voronoi Texture
Данная нода предоставляет растровое изображение с диаграммой Вороного.
ПРИМЕЧАНИЕ: поддерживается только 3D измерение, что означает отсутствие поддержки ввода W
Чтобы узнать больше информации о ноде Voronoi Texture, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Noise Texture
Данная нода предоставляет растровое изображение с текстурой шумома.
ПРИМЕЧАНИЕ: поддерживается только 3D измерение, что означает отсутствие поддержки ввода W
Чтобы узнать больше информации о ноде Noise Texture, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Wave Texture
Данная нода предоставляет растровое изображение с волнистым паттерном.
Чтобы узнать больше информации о ноде Wave Texture, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Цветовые ноды
Данные ноды обеспечивают разнообразные взаимодействия с цветом. При работе в Вердж3Д чаще всего используются следующие из них:
Bright/Contrast
Данная нода используется для изменения яркости и контраста у цветового входа.
Чтобы узнать больше информации о ноде Bright/Contrast, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Hue Saturation Value
Данная нода используется для изменения HSV модели цветового входа.
Чтобы узнать больше информации о ноде Hue Saturation Value, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Mix
Данная нода смешивает два цветовых входа вместе, используя разнообразные режимы.
Чтобы узнать больше информации о ноде Mix, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
RGB Curves
Данная нода используется для коррекции цвета и регулировки уровней.
Чтобы узнать больше информации о ноде RGB Curves, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Invert
Данная нода инвертирует цветовой вход, создавая негатив.
Чтобы узнать больше информации о ноде Invert, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Gamma
Данная нода применяет гамма-коррекцию к цветовому входу.
Чтобы узнать больше информации о ноде Gamma, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Векторные ноды
Данные ноды обеспечивают разнообразные операции с векторами. При работе в Вердж3Д чаще всего используются следующие из них:
Bump
Данная нода генерирует карту рельефа.
Чтобы узнать больше информации о ноде Bump, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Mapping
Данная нода используется для изменения растрового изображения, включая перемещение, вращение и масштабирование.
Чтобы узнать больше информации о ноде Mapping, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Normal
Данная нода используется для определения вектора нормалей и генерации скалярного произведения.
Чтобы узнать больше информации о ноде Normal, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Normal Map
Данная нода определяет направление нормаей из растрового изображения, интерпретируемого как карта нормалей.
ПРИМЕЧАНИЕ: поддерживается только Tangent Space
Чтобы узнать больше информации о ноде Normal Map, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Vector Curves
Данная нода используется для отображения входного вектора в виде кривой.
Чтобы узнать больше информации о ноде Vector Curves, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Vector Rotate
Данная нода используется для вращения входного вектора вокруг точки опоры.
Чтобы узнать больше информации о ноде Vector Rotate, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Vector Transform
Данная нода используется для преобразования входного вектора между пространствами координат мира, камеры или объекта.
Чтобы узнать больше информации о ноде Vector Transform, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Ноды преобразования
Данные ноды предоставляют данные для преобразования между различными типами. При работе в Вердж3Д чаще всего используются следующие из них:
Clamp
Данная нода фиксирует входное значение в указанном диапазоне.
ПРИМЕЧАНИЕ: поддерживается только тип фиксации Min Max
Чтобы узнать больше информации о ноде Clamp, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Color Ramp
Данная нода преобразует значения в цвета, используя градиент.
ПРИМЕЧАНИЕ: некоторые настройки поддерживаются частично
- цветовой режим: поддерживается только RGB
- интерполяция: Linear, Constant
Чтобы узнать больше информации о ноде Color Ramp, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Map Range
Данная нода используется для изменения значения из одного диапазона в другой.
ПРИМЕЧАНИЕ: поддерживается только Linear интерполяция
Чтобы узнать больше информации о ноде Map Range, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Shader to RGB
Данная нода заменяет шейдерные вычисления простым цветом. Обычно используется для нефотореалистичного рендеринга.
Чтобы узнать больше информации о ноде Shader to RGB, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
RGB to BW
Данная нода преобразует цвет в чёрно-белое изображения, используя яркость.
Чтобы узнать больше информации о ноде 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
Чтобы узнать больше информации о ноде Math, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
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
Чтобы узнать больше информации о ноде Vector Math, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Combine/Separate Nodes
Данные ноды объединяют цвет/вектор из отдельных каналов или разделяют их на отдельные каналы.
Чтобы узнать больше информации о нодах Combine и Separate Nodes, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Ноды специфичные для материала мира
Это ноды, доступные либо исключительно для мировых материалов (Background, World Output), либо их основное предназначение — быть в составе шейдеров мировых материалов (Environment Texture, Light Path, Sky Texture):
Background
Данная нода используется для настройки фонового цвета, а также для освещения и отражений на основе изображения. Поскольку она редко используется сама по себе, обеспечивает только монотонный цвет, чаще всего её сочетают с нодой Environment Texture.
Чтобы узнать больше информации о ноде Background, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
World Output
Данная нода является конечной точкой материалов типа World. Она представляет результаты затенения окружения.
Чтобы узнать больше информации о ноде World Output, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Environment Texture
Данная нода предоставляет файл изображения, который будет использован в шейдере в качестве текстуры среды. Изображения должны быть равноугольной проекцией и, как правило, HDR формата, хотя форматы JPEG и PNG также можно использовать.
Шаблон default cube уже содержит в себе HDR изображение, которое вы можете использовать в своих проектах.
ПРИМЕЧАНИЕ: некоторые опции поддерживаются частично
- режим интерполяции: Linear, Closest
- источник изображения: Single Image, Generated
- цветовое пространство: Linear, sRGB
На примере, указанном ниже, изображение формата JPEG одновременно обеспечивает освещение, отражения и фон на основе изображения.
Чтобы узнать больше информации о ноде Environment Texture, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Light Path
Данная нода предоставляет шейдеру различную информацию логического типа. Чаще всего её используют для того, чтобы контролировать видимость текстуры окружения на фоне (с помощью выхода Is Camera Ray).
Следующая типичная конфигурация нодового шейдера используется для обеспечения освещения окружающей среды и отражений, но без отображения самой текстуры в фоне (вместо неё шейдер отображает сплошной белый цвет):
Чтобы узнать больше информации о ноде Light Path, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Sky Texture
Данная нода предоставляет процедурно сгенерированную текстуру небосвода.
Чтобы узнать больше информации о ноде Sky Texture, ознакомьтесь с руководством «Блендера», пройдя по следующей ссылке.
Оптимизация производительности
Оптимизация Principled BSDF
Несмотря на то, что Principled BSDF является наиболее часто используемой нодой, она требует большое количество вычислительной мощности вашего графического процессора и замедляет загрузку приложений. Это становится особенно актуально, когда в вашей сцене много материалов созданных на основе Principled BSDF
Есть несколько способов оптимизировать материалы основанные на Principled BSDF:
- Замените Principled BSDF на Diffuse BSDF для матовых, неметаллических поверхностей.
- Замените Principled BSDF на Glossy BSDF для металлических материалов.
- Замените Principled BSDF на Emission если вы визуализируете материалы, в которых важен только цвет.
- Настройте свойства Cubemap Size или IBL Env. Mode для улучшения характеристик освещения окружающей среды.
- Перейдите на ГЛТФ-совместимые материалы.
Имейте в виду, что последние два метода приведут к тому, что ваши материалы будут выглядеть по-другому по сравнению с вьюпортом «Блендера».
Медленные процедурные текстуры
Существуют процедурные текстуры, которые снижают производительность:
- Noise Texture, особенно с высоким значеним Detail (16 приведёт к сбою в производительности).
- Voronoi Texture используйте параметр F1, так как он работает намного лучше, чем любой другой.
Вы можете запечь данные текстуры в растровые изображения и использовать ноду Image Texture, чтобы достигнуть лучшей производительности.
Остались вопросы?
Задайте их на нашем форуме!