Перейти к основному содержимому

Стандартные шейдеры материалов

В статье представлено описание шейдеров материалов стандартной поставки (из общественного репозитория).

Данная статья во многом опирается на понятия редактора материалов и основные понятия состава материалов.

Default

Описание: базовый шейдер для большинства типов материалов.

Default
Default

Общие настройки

Флаги

КлючНазваниеОписание
has_parameter_textureUse param textureВключает использование текстуры параметров, если установлен, используется текстура txParameters, в противном случае используются отдельные константы
has_alphatestEnable alphatestВключает использование альфатеста. Порог альфатеста задается в константе pbr_alphatest_threshold
emissiveEmissiveВключает светимость материала. Становится доступна опциональная текстура txEmissive и коэффициент светимости em_multiplier

Текстуры

КлючНазваниеТребуется?Описание
txBaseBase textureДаОсновная текстура материала
txNormalsNormal mapНетКарта нормалей. Вес задается в константе nm_weight
txParametersParam textureЕсли установлен флаг has_parameter_textureКарта параметров PBR. Каналы:
 * red – roughness
* green - metallic
* blue – thickness
* alpha - occlusion (можно сгенерировать в Grazy Bump)
txEmissiveEmissive mapЕсли установлен флаг emissiveКарта светимости. rgb -- цвет, a -- яркость. Коэффициент яркости задается в константе em_multiplier. Если не задана -- используется txBase

Константы

КлючНазваниеТипЗначение по умолчаниюОписание
nm_weightNormalmap weightfloat1.0Вес карты нормалей
em_multiplierEmissive multiplierfloat2.0Коэффициент яркости карты светимости, значения [0.0 - 1000.0]
pbr_roughnessRoughnessfloat0.5Шероховатость, значения [0.0 - 1.0]
pbr_metallicMetallicfloat0.0Металличность, значения [0.0 - 1.0]
pbr_thicknessThicknessfloat1.0Просвечиваемость, значения [0.0 - 1.0]. 1.0 -- полностью непросвечиваемый
pbr_aoAOfloat1.0Ambient occlusion, значения [0.0 - 1.0]

Настройки для прохода xGBuffer

Флаги

КлючНазваниеОписание
has_f0_textureUse f0 textureВключает использование текстуры f0, если установлен, используется текстура txF0, в противном случае используются отдельные константы

Текстуры

КлючНазваниеТребуется?Описание
txF0f0 textureЕсли установлен флаг has_f0_textureТекстура f0

Константы

КлючНазваниеТипЗначение по умолчаниюОписание
pbr_f0f0float0.04F0, значения [0.0 - 1.0]

Transparent

Описание: базовый шейдер для прозрачных материалов.

Общие настройки

Флаги

КлючНазваниеОписание
has_parameter_textureUse param textureВключает использование текстуры параметров, если установлен, используется текстура txParameters, в противном случае используются отдельные константы
refractiveRefractionВключает рефракцию материала. Карта рефракции задается в текстуре txNormals. Мощность рефракции задается в константе nm_weight

Текстуры

КлючНазваниеТребуется?Описание
txBaseBase textureДаОсновная текстура материала
txNormalsNormal mapНетКарта нормалей. Вес задается в константе nm_weight
txParametersParam textureЕсли установлен флаг has_parameter_textureКарта параметров PBR. Каналы:
 * red – roughness
* green - metallic
* blue – thickness
* alpha - occlusion (можно сгенерировать в Grazy Bump)

Константы

КлючНазваниеТипЗначение по умолчаниюОписание
nm_weightNormalmap weightfloat1.0Вес карты нормалей
pbr_roughnessRoughnessfloat0.5Шероховатость, значения [0.0 - 1.0]
pbr_metallicMetallicfloat0.0Металличность, значения [0.0 - 1.0]
pbr_thicknessThicknessfloat1.0Просвечиваемость, значения [0.0 - 1.0]. 1.0 -- полностью непросвечиваемый
pbr_aoAOfloat1.0Ambient occlusion, значения [0.0 - 1.0]

Sky

Описание: базовый шейдер для скайбокса.

Общие настройки

Текстуры

КлючНазваниеТребуется?Описание
txBaseBase textureДаОсновная текстура материала, тип -- кубическая