Полезное
Мы Вконтакте
Discord канал
Материалы — это, пожалуй, один из самых критических аспектов того, как выглядят ваши обьекты на сцене. Этот документ дает возможность быстро понять, как начать создавать ваши собственные материалы.
Если вы уже знакомы с созданием материалов из предыдущих версий движка Unreal Engine, тогда вам будет достаточно краткого знакомства, которое раскрывает ключевые особенности, которые вам необходимо знать для создания своей собственной физической модели шейдеров!
Первая и самая важная вещь, которую нужно знать о материалах это то, что они сконструированы не через код, а через сеть визуального скриптинга или нодов в Material Editor (Редакторе материалов). Каждая нода содержит HLSL код для выполнения специфических задач. Это значит, что создавая материал, вы создаете код путем визуального скрипта.
На данной картинке мы имеем очень простую систему, определяющую материал грубого деревянный пола. Однако, схемы не обязательно должны быть простыми. Часто различные материалы имеют большое количество различных нодов. Вы можете найти документацию для всех доступных выражений в соответствующем разделе.
Как вы наверное знаете, цвет в терминах цифрового изображения это совокупность четырех основных каналов.
R — Red
G — Green
B — Blue
A — Alpha
Так, для всех цифровых изображений, для каждого пикселя, общее количество каждого из этих каналов может быть представлено как число. Большая часть работы с материалом это простая манипуляция с этими числами, основанная на условиях среды и математических выражеениях.
Материалы используют число с плавающей точкой для данных, которые отвечают за цвет. В основном это значит, что эти числа для каждого канала варьируются от 0.0 до 1.0 вместо 0 до 255, как это происходит в других программах для работы с цифровым изображением. Важно подметить, что вы всегда можете увеличивать ваши значения, что в некоторых случаях может привести к различным последствиям или даже нужным эффектам. К примеру, посылая цвет в свойство «Emissive» в настройках материала, которое вызывает внутреннее свечение, при значениях выше 1.0 увеличивается яркость этого свечения.
Задумываясь о материалах в движке Unreal Engine 4, имейте ввиду, что множество расчетов выполняется независимо от каждого цветового канала. Например, нода Add (Добавить) имеет два imput (ввода) и каждая из них приходится на канал. Если вы смешаете таким образом два RGB цвета, тогда на выходе цвет будет:
Red 1 + Red 2 = Red 3
Green 1 + Green 2 = Green 3
Blue 1 + Blue 2 = Blue 3
Ноды, которые выполняют поканальные операции обычно требуют входы (imputs), которые имеют такое же число каналов. Например, вы можете добавить цвет RGB к другому RGB, но вы не можете добавить RGBA ( 4- канальныйвектор) в RGB ( 3 канала), поскольку цвет RGB не имеет альфа — канала. Это приводит к ошибке — материал не будет компилироваться. Исключением из этого правила является тот случай, когда одним из input является одноканальным (скалярный). В этом случае скалярное значение просто применяется ко всем другим каналам.Например:
Если добавить RGB к скалярному значению 1.0, результат будет выглядеть так:
0.35 + 1.0 = 1.35
0.28 + 1.0 = 1.28
0.77 + 1.0 = 1.77
В случае материалов, текстуры просто представляют вид данных, состоящий из пикселей.
Эти данные могут быть цветом обьекта, то как он блестит, его прозрачность и другое. Существует способ олдскульного создания Материалов через текстуры, когда применяется цвет к игровым моделям. Создание текстур таким способом все еще сложно и в настоящее время — нужно задумываться о том, что текстура, это компонент материала, и то, что конечный результат вашей текстуры не сопадает с таковым для материала.
Один материал может использоваться для различных текстур, каждая из которых может быть применена для различных целей. К примеру, простой материал может иметь Base Color texture, Specular texture, и Карту Нормалей. В добавок это может быть карта свечения или карта Roughness в альфа канале одной или более этих текстур.
Вы также можете заметить, что один и те же текстуры, использующиеся для различных целей, различаются только цветом.
Однажды созданная и добавленная в Unreal Editor, тестура преваращается в материал при помощи нод Material Expression таких как Texture Sample. Вы можете их видеть на картинке выше, там где показана система материала для грубого деревянного пола. Эти ноды делают ссылку на текстуру , которая находится за пределами материал редактора, которую можно найти отдельно в Content Browser . В отличие от других 3Dприложений, здесь нет другого способа хранить текстуры для материала, кроме вышеуказанного.
Для получения дополнительной информации о текстурах и их создании, пожалуйста обратитесь к документации Текстур.
Многое из того, что вы можете сделать с материалами, управляется различнымисвойствами, установленными в самом материале. И, прежде чем вы сможете понастоящему раскрыть потенциал системы материалов Unreal Engine, полезно просмотреть на доступные свойства и параметры этой системы. Они представлены ниже
То, каким образом применяются материалы зависит и от типа поверхности.
Применение Материала к Мешам (статических, динамических, или скелетных) может совершаться различными способами. Просто используйте слот «Materials element», расположенный в свойства хMesh. Он может быть найден в панели Details, когда вы добавляете ваш Mesh на уровень, или, щелкнув правой кнопкой мыши на Mesh, выберите Свойства из контекстного меню. Вы также найдете их в различных редакторах, таких как Static Mesh Editor или редактор Personal Skeletal Mesh.
Если вы хотите, чтобы материал устанавливался по умолчанию для данного объекта, обязательно установите материал в свойствах, либо щелкнув правой кнопкой мыши и выбрав Свойства изнутри Content Browser или двойным щелчком на Mesh в Content Browser и установите материал с помощью редактора (например, Static Mesh Editor или Personal ).
Помните, что если вы измените Материал из редактора или Content Browser, изменение затрагивает ваш asset. Если вы измените его , используя информацию из Mesh уже помещенные в сцене, то это влияет только на копию Меша.
Применение Материал к БСП Брашу поверхности представляет собой простой процесс:
Выберите материал из Content Browser.
Нажмите на поверхность BSP, для которой хотите назначить материал.
На панеле Details нажмите на и выберете нужный материал из списка.