Overview (Обзор)
Наш фирменный игровой движок использует стандартный металлический конвейер PBR (metallic PBR pipeline) [концепция рендеринга, основанная на физических принципах] для создания материалов.
От переводчика: Я советую всем ознакомиться с интересной статьей по PBR на habr.com/
Новые материалы можно легко создать, перейдя в папку, щелкнув правой кнопкой мыши на пустом месте и выбрать из контекстного меню Create (создать) > Material (материал).
Редактор материалов можно открыть, дважды щелкнув на уже существующий материал в браузере ресурсов (resource browser).
Inspector (Контроль)
Shader (Шейдеры) :
Вы можете выбрать нужный шейдер из этого виджета выбора шейдеров.
Существует несколько в основном используемых шейдеров; наиболее важными из них являются pbr_metallic и pbr_shading.
pbr_shading :
Этот шейдер широко используется и существует в игре только потому, что наш движок не использовал конвейер затенения PBR (PBR shading pipeline) в первые годы разработки, большая часть контента не была создана для конвейера PBR, поэтому этот шейдер создан для поддержки нашего уже существующего контента и используется только на переходном этапе .
Новый контент не должен использовать этот шейдер, вместо него вы должны использовать pbr_metallic.
pbr_metallic :
Это то, что вы должны использовать большую часть времени. Этот шейдер использует стандартный металлический конвейер PBR, а входные данные совместимы с большинством программ для создания текстур.
Inputs (исходные ресурсы) :
Albedo (альбедо) и Normal (нормаль) : Они довольно стандартные, можно напрямую использовать выходные данные программ для создания текстур.
[ Альбедо - это текстура, которая содержит независимую информацию о цвете.
Нормаль - это технология, используемая для имитации неровностей поверхности на объекте. ]
Specular (спекуляр) : Эта текстура использует свои 4 канала для различных целей.
Красный канал (Red channel) содержит информацию металлической поверхности.
Зеленый канал (Green channel) содержит информацию о глянцевости (обратную шероховатости).
Синий канал (Blue channel) содержит Ambient Occlusion [ Это черное-белая текстура, в ней хранятся тени от рассеянного света. Они могут подчеркнуть рельеф изображенный на основной текстуре. Данную текстуру использовать не обязательно, но материал без нее может смотреться более плоским. ].
Альфа-канал содержит информацию о полупрозрачности (только для растительных шейдеров).
grass (трава) :
Этот шейдер является производным от pbr_metallic и должен использоваться только на мешах травы. Содержит специальные эффекты, такие как анимация ветра, анимация раскачивания, плавные LOD-преобразования, умножение цвета на местности и т.д.
flora_leaf (листья) :
Этот шейдер является производным от pbr_metallic и должен использоваться только на листовых частях деревьев / кустарников. Содержит специальные эффекты, такие как анимация ветра, анимация качания, умножение цвета на местности, плавные LOD-преобразования, полупрозрачность (Альфа-канал зеркальной текстуры) и т.д.
flora_bark (кора) :
Этот шейдер является производным от pbr_metallic и должен использоваться только на частях коры деревьев / кустарников. Содержит специальные эффекты, такие как анимация ветра, плавные LOD-преобразования и т. д.
Textures (Текстуры)
Эта панель используется для установки входных текстур шейдеров.
Названия текстур объясняются сами собой, но есть несколько особых случаев.
Diffuse2Map :
Эти исходные данные используется внутренним движком игры для создания специальных эффектов / блендингов (special effects / blendings), таких как Shield Banner Paintings (щит с геральдическим баннером).
Текстура баннера в этом слоте будет отображаться только там, где Diffuse 1 Texture содержит альфа-канал. Использование этой текстуры зависит от используемого шейдера.
DetailNormalMap :
Эти исходные данные используется для создания микродефектов [трещины, шрамы, выбоины и т.п. ] и дополнительных высокочастотных деталей поверх обычного нормального отображения. Масштаб этой текстуры можно настроить на панели настроек текстуры (Texture Settings panel).
HeightMap (карта высот) :
Эти исходные данные используется как при Parallax Occlusion Shading [используется для процедурного создания трёхмерного описания текстурированной поверхности с использованием карт смещения вместо непосредственного генерирования новой геометрии], так и при Displacement (смещении).
Decal(___)Map :
Эти исходные данные используются внутренним движком игры для создания визуальных эффектов на коже или на других объектах (например, кровь и грязь).
Texture Settings (Настройки текстур)
Эти настройки может быть использованы для большего разнообразия текстурирования. Некоторые настройки используются только для некоторых специальных шейдеров для передачи пользовательских параметров.
Areamap Scale (Масштаб карты местности) :
Используется внутренне для передачи параметров.
Specular Coef :
Металлический канал (Красный канал спекуляра) умножается на это значение в шейдере.
Gloss Coef (Коэффициент блеска) :
Глянцевый канал (Зеленый канал спекуляра) умножается на это значение в шейдере.
Ambient Occlusion Coef :
AO channel (синий канал спекуляра) умножается на это значение в шейдере.
Normal Depth (Глубина нормали) :
Нормали текстур X и Y каналов умножаются на это значение. Если вы установите значение, близкое к нулю, поверхность будет казаться более плоской, так как значения X и Y будут близки к нулю, и только направление Z будет внесено в отображение нормали.
Detail Normal Scale (Подробный масштаб нормали) :
Этот параметр задает, во сколько раз должны быть детализированы текстуры. Более высокие значения увеличивают частоту.
Parallax Mode :
Вы можете выбрать метод смещения, который будет использоваться для этого материала. Варианты - Parallax (параллакс) или Displacement (смещение). И то, и другое требует текстуры heightmap. Parallax использует метод Parallax Occlusion Mapping в шейдере, Displacement использует hardware tesselation (аппаратную тесселяцию).
Parallax Amount (Величина параллакса) :
Интенсивность эффекта вытеснения (displacement effect).
Parallax Offset (Смещение параллакса) :
Устанавливает среднее значение на желаемую высоту. (Значение 0,5 в heightmap (карте высот)).
Material Shader Flags
Вы можете включать и выключать некоторые условные обозначения времени компиляции в шейдерах, чтобы включить/отключить некоторые эффекты. Это флаги во время компиляции, и шейдер материала будет скомпилирован с этими флагами.
Некоторыми важными значениями являются :
use_detailnormalmap :
Этот флаг должен быть включен для использования функции Detail Normal Map.
alpha_test :
В качестве вырезанной текстуры используются альфа-значения Diffuse 1 textures. Альфа-порог можно задать на панели Transparency (прозрачности).
use_specular :
Этот флаг должен быть включен во всех случаях.
use_procedural_wind_animation :
Можно включить для создания очень простого и малозатратного синусоидального колебания эффекта ветра. В основном используется для палаток / флагов. (Не следует путать с функцией физики ткани (cloth physics)).
self_illumination :
Включает подсветку. Текстура освещения должна быть указана в разделе Diffuse 2. Параметры яркости можно отрегулировать в панели Vector Arguments.
use_specular_from_diffuse :
Никогда этим не пользуйтесь. Он используется только в фазе перехода на конвейер PBR (pbr pipeline) и только в этой игре по устаревшим причинам. Просто оттеняет серым diffuse (диффузную) текстуру и использует ее как спекуляр.
use_double_colormap_with_mask_texture :
Используется внутренне для создания группового цветового эффекта в одежде. Специальная текстура создается, чтобы указать, какие части одежды должны быть затронуты цветами в группе. Простая красно-зеленая текстура для первичных и вторичных цветов задается в Diffuse 2 texture. Первичные (Primary) и вторичные (Secondary) цвета задаются игровым кодом в качестве Factor Colors (цветового коэффициента).
Transparency (Прозрачность)
Здесь можно указать режим альфа-смешивания и пороговые значения Alpha Test (альфа-теста).
Здесь также можно включить функцию Multi Pass Alpha. Этот метод создания двойного меша с помощью альфа-теста (alpha test) и альфа-смешивания (alpha blend), чтобы создать громоздкие, но гладкие на вид меши alpha testes. (Альфа-тест в средних областях меша для плотного покрытия, но гладкие альфа смешанные градиенты по краям, такие как волосы).
Others (Другие)
Эта панель обычно предназначена для технического / внутреннего использования разработчика и в основном используется для создания материалов для основных функций движка игры.
Vector Arguments (Векторные параметры)
Эта панель содержит два векторных аргумента. Оба содержат по 4 фактических значения, в общей сложности 8.
Эти векторные аргументы используются в качестве параметров для некоторых специальных шейдерных эффектов, таких как настройка яркости Self Illumination (собственного освещения), скорости и направления Texture Sweep (развертки текстуры) и т. д.
То, какие изменения с каким векторным аргументом действительно происходят, зависит от эффектов, для которых он используется.
Factor Colors (Фактор цвета)
Эти цвета умножаются на внутренний Factor Color на мешах, которые обычно изменяются с помощью игрового кода. Если вы действительно хотите, чтобы какая-то текстура была немного темнее, зеленее и т. д. вы можете умножить их с помощью этой панели.
Vertex Layout (Макет вершин)
Эта панель используется для указания Vertex Layout (макета вершин), который должен использовать Vertex Shaders.
Bump Map (карта рельефа) :
Должен быть включен в большинстве случаев (стандартный PBR требует этого).
Skinning and Skinning Precise :
Если ваш материал будет использоваться со skinned mesh, включите Skinning, если ваш skinned mesh довольно велик и имеет важные маленькие полигоны (например, глаза), включите Skinning Precise (Точный скиннинг). (Это отключает некоторые оптимизации, поэтому используйте их только в том случае, если это действительно необходимо).
Double UV :
Включите, если ваши пользовательские шейдеры требуют двойных UV каналов.
PostFX :
Используется внутри движка игры.