Математические выражения и сети

Первая и самая важная вещь, которую нужно знать о материалах это то, что они сконструированы не через код, а через сеть визуального скриптинга или нодов в 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, полезно просмотреть на доступные свойства и параметры этой системы. Они представлены ниже


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: