Полезное

Мы Вконтакте

Discord канал

Материалы и Шейдеры

UEngine.RU » Материалы сайта » Документация » Материалы и Шейдеры

Апр 12 2016

Material Parameter Collection(коллекции параметров) является ассетом, который хранит произвольный набор скалярных и векторных параметров, которые могут быть использованы в любом материале.
Это мощный инструмент, который художники могут использовать, чтобы менять глобальные данные во многих материалах сразу. Он также может быть использован для управления уровнем эффектов, таких как количество снега,
суммарное смешивание, сырость и т.д., которые в противном случае потребуют установки отдельных параметров во многих различных материалах на вашем уровне.

Material Parameter Collection

Material Parameter Collection

В приведенном выше примере, глобальные параметры используются для управления следующими аспектами сцены:

  • Морфинг цветов на основе скорости ветра и времени суток.
  • Позиция игрока отслеживается и это отражается на листве. То есть трава «расступается», когда игрок идет по ней.
  • Общий цвет диффузийного осещения зависимости от времени суток.

Создание и редактирование Material Parameter Collection

Material Parameter Collection создаются через Content Browser с помощью Add меню или в контекстного меню вызываемом правой кнопкой мыши, после они могут быть отредактированы и сохранены, как и любые другие ассеты.

  1. Для создания Material Parameter Collection, вы должны сначала нажать правой кнопкой мыши в Content Browser, чтобы открыть меню.
    В этом меню выберите раздел Materials & Textures, а затем выберите Material Parameter Collection.

    Material Parameter Collection

  2. После выбора, будет создан новый ассет Material Parameter Collection в Content Browser.

    Material Parameter Collection

  3. Для редактирования Material Parameter Collection, вы должны сначала дважды щелкнуть по нему левой кнопкой мыши, чтобы открыть окно свойств.

    Material Parameter Collection

  4. Нажмите кнопку плюс рядом с Scalar Parameters или Vector Parameters для создания новых параметров, к которым вы хотите получить доступ из материала. Не забудьте вводить имена и значения по умолчанию.

    Параметры

Использование Material Parameter Collections в материалах

Добавление Material Parameter Collection к любому материалу делается в несколько шагов. В следующем разделе мы рассмотрим, как добавить соответствующие ноды в очень простой материал.

  1. Первое, что нужно сделать, это создать Material Parameter Collection и заполнить его данными. Для этого щелкните правой кнопкой мыши в Content Browser, а затем выберите раздел Materials & Textures,
    а затем выберите Material Parameter Collection. После создания вы должны присвоить ему имя. Для этого примера мы будем использовать MPC_Global_Material_Prams.

    MPC_Global_Material_Prams

  2. После того, как Material Parameter Collection был создан откройте его с помощью двойного щелчка левой кнопкой мыши.
    После того, как Material Parameter Collection открыт, добавьте один Scalar Parameters и назовите его Global_Desaturation.
    Оставьте значение по умолчанию Global_Desaturation на 0.0. После завершения, ваш Material Parameter Collection должен выглядеть следующим образом.

    Global_Desaturation

  3. Теперь, когда Material Parameter Collection был создан нам необходимо создать простой материал. Для этого примера мы будем создавать следующий материал. Выставьте ноды как на картинке.

    Ноды

  4. После того как основные узлы подключены, найдите в поиске ноду Desaturation и перетащите её на свободную область.
    Далее найди ваш ассет Material Parameter Collection в Content Browser и перетащите его в материал. У вас должно было получиться следующее:

    Material Parameter Collection

  5. Теперь, когда все ноды были добавлены, настало время, чтобы соединить все вместе. Соедините всё так как на изображении, и не забудьте нажать кнопку Apply что бы применить изменения к материалу.

    Итоговый вид

  6. Чтобы увидеть Material Parameter Collection в действии, мы должны сначала применить материал, в котором он используется к нужным объектам в мире.
    После того, как материал был применен, откройте Material Parameter Collection с помощью двойного щелчка на нем левой кнопкой мыши внутри Content Browser.
    После открытия, мы можем изменить значение Default Value в Global_Desaturation от 0 до 1 и увидеть как объекты будут меняться.
    https://www.youtube.com/watch?v=-ZMwWcAWxvQ

Обновление Material Parameter Collection через блупринты

Один из способов, которым можно изменять Material Parameter Collection — это блупринты. Это чрезвычайно мощный способ манипулировать Material Parameter Collection, так как он позволяет это делать в любо момент времени в игре.

  1. Прежде чем мы сможем начать, мы должны сделать несколько вещей, в первую очередь. Первое, что нам нужно сделать, это создать несколько Material Instances из нашего материала.
    Для этого примера нам нужно создать три материала на основе экземпляров материала, который был создан выше. После создания измените цвет у некоторых из них. Для этого примера будем использовать красный,
    зеленый и синий. После завершения строительства, ваш Content Browser должен выглядеть следующим образом.

    Content Browser

  2. Теперь настало время применить их к различным объектам в сцене, нажав на Material Instance левой кнопкой мыши в Content Browser, а затем перетащив их на объекты в сцене. После завершения вы должны иметь что-то похожее на это.

    Material Instance

  3. Далее откройте Level Blueprint. Для этого нажмите соответствующую кнопку в меню над Viewport областью.

    Level Blueprint

  4. После того, как Level Blueprint был открыт, настало время, чтобы установить некоторые ноды. Для этого примера нам понадобятся следующие ноды и переменные.
    • Left Mouse Button Pressed
    • Timeline
    • Set Scalar Parameter Value
    • Переменная типа Float с именем: Des

    Level Blueprint

  5. Выберите в Set Scalar Parameter Value наш Material Parameter Collection и параметр который мы хотим изменить.

    Set Scalar Parameter Value

  6. Далее мы будем должны настроить нашу Timeline так, что при нажатии левой кнопкой мыши, цвета будут меняться с течением времени, а затем обратно, как только левая кнопка мыши будет отпущена.
    Чтобы настроить Timeline, сначала дважды щелкните на ней, чтобы открыть её.

    Timeline

  7. Теперь, когда Timeline была открыта, теперь мы должны заполнить её некоторыми данными. Первое, что нам нужно сделать, это добавить Float дорожку, нажав на иконку Add Track Float.
    Затем нам нужно добавить два ключа с помощью правой кнопки мыши и мыши в любом месте светло-серой области, а затем выбрав Add Key из меню.
    Мы добавили два ключа, один с Time 0.0 и Value 0.0 и один с Time 1.0 и Value 1.0. После того, как ключи добавлены, не забудьте назвать трек. Для этого примера, мы будем использовать Des_Amount в качестве имени.
    https://www.youtube.com/watch?v=oGNfh9_ctI4

  8. Timeline теперь настроена правильно, вы можете закрыть её и вернуться к графику. Далее соедините все узлы следующим образом.

    Итоговый вид

  9. Теперь, когда все подключено, скомпилируйте Level Blueprint, нажав на кнопку Compile, а затем закройте редактор. Сейчас можно протестировать результат.
    Нажмите кнопку Play и уже в игре зажмите левую кнопку мыши что бы увидеть результат.
    https://www.youtube.com/watch?v=saVjrY41jWk

Ограничения и рабочие характеристики

Материал может ссылаться, в лучшем случае, две различных Material Parameter Collection. Material Parameter Collection может иметь до 1024 скалярных параметра и 1024 векторных параметра.
Изменение количества параметров в коллекции приведет к перекомпиляции всех материалов, которые ссылаются на эту коллекцию. Если вам нужно добавить множество параметров, это лучше будет сделать на пустой карте.
Если переименовать параметр, любые материалы, относящиеся к этому параметру будут продолжать работать. Тем не менее, любой блупринт ссылающийся на этот параметр перестанет работать.
Вы должны будете переназначить в блупринте используемое имя параметра на новое. Использование Material Parameter Collection гораздо более эффективно чем изменение множества параметров во многих материалах.

Добавил: Flakky Категория: Материалы и Шейдеры Читать дальше »

Апр 08 2016

Этот документ предназначен, чтобы помочь тем, кому необходимо быстро освоить Physically Based Materials. Это предполагает, что вы по крайней мере, до некоторой степени знакомы с созданием материалов в Unreal Engine,
по крайней мере с Unreal Engine 3 или более поздней версии.
Наша цель здесь, чтобы дать вам только данные первой необходимости, как сделать стандартные материалы, используя эту систему, так как она может быть причиной путаницы, даже для тех, у кого есть опыт работы в предыдущих версиях Unreal Engine.
Мы будем концентрироваться только на тех аспектах материалов, которые связаны с нашим Physically Based подходом.

Что такое Physically Based Materials?

Physically Based shading означает что мы моделируем то что свет делает в реальном мире, на основе реальных физических параметров. Конечным результатом является более точный и, как правило, более естественный вид.
Physically Based Materials будут одинаково хорошо работать во всех средах освещения. Кроме того, значения, материала могут быть менее сложными и взаимозависимым, что приводит к более интуитивному интерфейсу.
Эти преимущества применимы даже для не фотореалистичной визуализации. По этим и другим причинам, в Unreal Engine 4 был принят новый подход к моделированию материалов, на основе физических параметров.

Параметры материалов

“Физическими” параметрами в нашей системе являются только четыре свойства. Это:

  • Base Color
  • Roughness
  • Metallic
  • Specular
Все эти входы предназначены что бы принимать значения от 0 до 1. В случае Base Color, это означает, что цвет имеет компоненты RGB, которые так же попадают между 0 и 1.

Эти параметры могут быть измерены у реальных материалов. Некоторые примеры будут даны ниже.

Base Color

Base Color просто определяет общий цвет материала. Он принимает в значении Vector3 (RGB), и каждый канал автоматически варьируется между 0 и 1.

Base Color

Измеренные значения Base Color для неметаллов (только интенсивность):

Материал Интенсивность
Древесный уголь 0,02
Свежий асфальт 0,02
Изношенный асфальт 0,08
Голая почва 0,13
Зеленая трава 0,21
Песок пустыни 0,36
Свежеуложенная бетонная смесь 0,51
Океанический лёд 0,56
Свежий снег 0,81

Измеренные значения Base Color для металлов:

Материал Цвет
Железо (0,560, 0,570, 0,580)
Серебро (0,972, 0,960, 0,915)
Алюминий (0,913, 0,921, 0,925)
Золото (1,000, 0,766, 0,336)
Медь (0,955, 0,637, 0,538)
Хром (0,550, 0,556, 0,554)
Никель (0,660, 0,609, 0,526)
Титан (0,542, 0,497, 0,449)
Кобальт (0,662, 0,655, 0,634)
Платина (0,672, 0,637, 0,585)

Roughness

Roughness буквально управляет тем, насколько шероховат материал. Грубый материал будет рассеивать отраженный свет в нескольких направлениях. Roughness 0 (гладкий) является зеркальным отражением и Roughness 1 (грубый) полностью матовый.

Roughness

Roughness

Roughness 1
Roughness 0
Roughness 0.5
Roughness 0.5
Roughness 1
Roughness 1

Mapping Roughness

Roughness является свойством, которое часто будет отображаться на ваших объектах, чтобы добавить наиболее физическое изменение к поверхности.

Roughness 1
Roughness 0
Roughness 0.5
Roughness 0.5
Roughness 1
Roughness 1

Если вы делали материалы в предыдущих версиях Unreal Engine и не привыкли к материалам на физической основе, имейте в виду, что Roughness текстура,
то где вы будете обрабатывать большую часть вашего Specularity текстурирования.

Metallic

Metallic буквально управляет тем, насколько металлическая ваша поверхность. Значение 0 для неметаллов и значение 1 для металлов. Для чистых поверхностей, таких как чистый металл, натуральный камень, чистый пластик и т.д. Это значение будет 0 или 1,
а не что-то между ними. При создании гибридных поверхностей, например, коррозийных, пыльных и ржавых металлов, вы можете обнаружить, что вам нужно некоторое значение в диапазоне от 0 до 1.

Roughness

Roughness 1
Metallic 0
Roughness 0.5
Metallic 0.5
Roughness 1
Metallic 1

Specular

Specular как правило не используется, значение по умолчанию 0.5 для большинства случаев.
Значение от 0 до 1 используется для масштабирования текущего количества зеркальности на неметаллических поверхностях. Этот параметр не оказывает никакого влияния на металлы.
Обычно, если мы изменяем Specular, мы делаем это, чтобы добавить микро затенение, скажем, из трещин, представленных в обычной карте. Их иногда называют полостями. Как правил микро-геометрия не захватывается обычной картой теней,
по этому мы создаём специальную AO карту.Затем умножаем на конечный Base Color перед выходом и умножаем на 0,5 (Specular по умолчанию) в качестве выхода Specular.
Чтобы было ясно Base Color = Cavity * OldBaseColor, Specular = Cavity * 0,5. Это может быть использовано для управления коэффициентом преломления (IOR). Мы поняли, что это не требуется для 99% материалов.

Измеренные Specular значения:

Материал Specular
Стекло 0.5
Пластик 0.5
Кварц 0.570
Лёд 0.224
Вода 0.255
Молоко 0.277
Кожа 0.35

Roughness 1
Specular 0
Roughness 0.5
Specular 0.5
Roughness 1
Specular 1

Материалы
Примеры материалы. Серху: Древесный уголь, свежий бетон, изношенный асфальт. Снизу: медь, железо, золото, алюминий, серебро, никель, титан.

Добавил: Flakky Категория: Материалы и Шейдеры Читать дальше »

Янв 20 2016

Модель затенения — определяет, как ваш материал буде отражать попадающий на него свет.Другими словами — он контролирует входящие данные,которые будут использованны для создания окончательного вида.
Модель затенения

Существует шесть моделей затенения в Unreal Engine 4 : Default Lit, Unlit, Subsurface, Preintegrated Skin, Clear Coat, and Subsurface Profile. Первый из этого списка вы будете использовать как основной тип, остальные же созданы для помощи при создании более реалистичных результатов на определенных типах объектах и поверхностей.

Нижеприведённые примеры используют материалы с режимом наложения Opaque.

Default Lit

Default Lit — как видно из названия, это вид затенения установленный по умолчанию.Это затенения модели делает использование прямого и непрямого освещения, а также отражатющей способности для отражений.
Модель затенения

Когда вы используете Default Lit Shading Model, у вас появляется доступ к таким параметрам:

  • Base Color
  • Metallic
  • Specular
  • Roughness
  • Emissive Color
  • Normal
  • World Position Offset
  • Subsurface Color
  • Ambient Occlusion

Unlit

Unlit - модель затенения, которая имеет лишь один канал Emissive, для цвета который будет источать свет, но который не отбрасывает тень.

Модель затенения

Когда вы используете Unlit Shading Model, у вас появляется доступ к таким параметрам:

  • Emissive Color
  • World Position Offset

Subsurface

Subsurface — модель освещения которая имитирует эффект подповерхностного рассеивания.Это явления реального мира, в котором свет проникает в поверхность и затем диффундирует на всем ее протяжении.Это можно увидеть на таких объектах, как лед, воск свечи, и кожи.Subsurface модель (а также Preintegrated Skin,описанный ниже), основывается на Subsurface Color.Вы можете представить себе это как цвет материи, который находится под поверхностью материи , и рассеивается через её поверхность.Для человеческой кожи, часто используют тёмно-красный цвет. А для ледяного Элементаля ниже, использовали тёмный сине-зеленый цвет, для придания чувства полупрозрачности глубины поверхности.

Больше информации про Subsurface Shading model,можно узнать тут the Subsurface Shading Model documentation.

Модель затенения

Когда вы используете Subsurface Shading Model, у вас появляется доступ к таким параметрам:

  • Base Color
  • Metallic
  • Specular
  • Roughness
  • Emissive Color
  • Opacity
  • Normal
  • World Position Offset
  • Subsurface Color
  • Ambient Occlusion

Preintegrated Skin

Preintegrated Skin — очень похож на Subsurface , но затрачивает меньше ресурсов при рендеринге человеческой кожи, так как данный метод не совсем физически совершенен, в отличии от Subsurface.На картинке ниже приведён пример данной модели освещения.

Модель затенения

Когда вы используете Preintegrated Skin Shading Model, у вас появляется доступ к таким параметрам:

  • Base Color
  • Metallic
  • Specular
  • Roughness
  • Emissive Color
  • Opacity
  • Normal
  • World Position Offset
  • Subsurface Color
  • Ambient Occlusion

Clear Coat

Clear Coat — может быть использована для того, чтобы лучше моделировать многослойные материалы, имеющие тонкий полупрозрачный слой пленки по поверхности стандартного материала. Также, Clear Coat также может быть использована c металлической или неметаллической поверхностью.На самом деле, он был специально разработан для моделирования этой второй прослойки поверх бесцветного металла.Как пример, можно привести акриловые или покрытые лаком поверхности, или автомобильная краска.

Модель затенения
Monte Carlo референс
Модель затенения
UE4

Обратите внимание, что блики были сделаны в редакторе материалов и не являются частью модели затенения.

Когда вы используете Clear Coat Shading Model, у вас появляется доступ к таким параметрам:

  • Base Color
  • Metallic
  • Specular
  • Roughness
  • Emissive Color
  • Opacity
  • Normal
  • World Position Offset
  • Ambient Occlusion
  • Clear Coat
  • Clear Coat Roughness

Subsurface Profile

Subsurface Profile Shading Model — очень похожа на Subsurface model и Preintegrated Skin Shading Model, но требует больше ресурсов для рендеринга, так как делает вид человеческой кожи более реалистичной.

Модель затенения

Когда вы используете Clear Subsurface Profile Shading Model, у вас появляется доступ к таким параметрам:

  • Base Color
  • Specular
  • Roughness
  • Emissive Color
  • Opacity
  • Normal
  • World Position Offset
  • Ambient Occlusion

Two Sided Foliage

Two Sided Foliag — модель затенения, введена для придания листве/растительности более натурального вида, когда она освещается.При использовании Default Lit Shading Model, листва может выглядеть почти черной.Two Sided Foliag помогает устранить эти проблемы, используя вариацию Subsurface scattering освещения, учитыващей объекты которые являются очень тонкими, помогая создать иллюзию, что свет проходит через листву. Это также помогает устранить темные участки листвы и даёт более равномерный вид освещения.

Модель затенения
Two Sided включено
Модель затенения
Two Sided выключено

Когда вы используете Two Sided Foliage Model, у вас появляется доступ к таким параметрам:

  • Base Color
  • Specular
  • Roughness
  • Emissive Color
  • Opacity
  • Normal
  • World Position Offset
  • Subsurface Color
  • Ambient Occlusion
Добавил: RedComrade Категория: Материалы и Шейдеры Читать дальше »

Янв 20 2016

Режимы наложения материалов

Режимы наложения материалов описывают как материал будет себя вести с окружающим фоном.Перефразируя, это будет звучать примерно так — режим наложения позволяет контролировать то, как движок будет комбинировать материал (источник цвета) с тем, который уже находится в буфере (целевой цвет) при визуализации этого материала оказывающегося перед другими пикселями. Для демонстрации, была создана сцена с камерой и двумя объектами.Камера будет смотреть на (или сквозь) первый объект и мы будем наблюдать, как он будет взаимодействовать с фоном, когда будем менять режимы смешивания.

Режимы наложения материалов

Opaque

Opaque Blend Mode — самый простой и частоиспользуемый режим.Он определяет поверхность, через которую свет не проходит и не проникает. Это идеальный вариант для большинства пластмасс, металлов, камня, и большинства других типов поверхности.

Режимы наложения материалов Сцена Режимы наложения материалов Вид из камеры

Masked

Masked Blend Mode — режим смешивания для объектов, в которых вы можете контролировать видимость в бинароном виде (вкл/выкл).Для примера рассмотрим материал, который имитирует сетчастый забор/решётка. В итоге некоторые участки видны, а некоторые невидимы.

Режимы наложения материалов

Важно понимать разницу между прозрачным и не рендерящимся («то что не рендерится» //заменить при желании во время редактирования). Прозрачные поверхности, такие как стекло, все равно взаимодействует со светом в виде отражений (отражающая способность). Пиксели которые вызываются при режиме смешивания Masked — не отрисовываются; вы не увидите каких либо отражений на этих участках.Если вы хотите сохранить отражения или блики, вам стоит использовать Translucent Blend Mode или создать многослойный материал.

Режимы наложения материалов Сцена Режимы наложения материалов Вид из камеры

Когда вы используете Masked Blend Mode, необходимо обратить особое внимание на Opacity Mask Clip Value.Это скалярная величина с диапазоном от 0 до 1, которая определяет значение непрозрачности маски, текстура которой будет использоваться в качестве предельной точки, за которой все темные пиксели не рендерятся.

Режимы наложения материалов
Opacity Mask Clip Value (увы -гифка, а не слайдер)
Режимы наложения материалов
Структура материала
На примере выше, у материала включён параметр Two Sided,поэтому вы можете увидеть внутренность коробки. Показанный здесь пример Opacity Mask Clip Value, на самом деле не разработан, что бы отображать изменения в реалтайме.

Translucent

Translucent - полупрозрачный режим наложения использующийся на объектах, которые требуют некоторой прозрачности.
Режимы наложения материалов

Этот режим наложения берёт значение Opacity текстуры и назначает все чёрные участки — прозрачными, белые — непрозрачными, а те участки которые имеют оттенки серого, имеют соответственные уровни прозрачности. Это значит, что с серой Opacity текстурой, вы можете получить полупрозрачный объект.

Режимы наложения материалов Сцена Режимы наложения материалов Вид из камеры

При использовании полупрозрачных материалов важно понимать, что они в настоящее время не поддерживают отражающей способности. Это означает, что вы не увидите отражений на поверхности.Впрочем, такие отражения можно сэмулировать, используя кубмапу сцены, структура материала которой :

Режимы наложения материалов

Additive

Additive — режим смешивания, при котором пиксель материала добавляется к пикселю фона.Это очень похоже на режим наложения Linear Dodge (Add) в фотошопе. Это означает, что нет затемнения; поскольку все значения пикселей будут добавлены друг к другу, чёрное будет просто отображаться как прозрачное. Этот режим смешивания является полезным для различных специальных эффектов, таких как огонь, пар, или голограмма.

Режимы наложения материалов

Как и с полупрозрачным режимом смешивания — этот режим не учитывает отражающей способности.Воссоздать эффект отражения можно тем же способом кубмапы, что упоминался выше.

Режимы наложения материалов Сцена Режимы наложения материалов Вид из камеры

Modulate

Modulate - режим смешивания, просто умножает значение пикселя материала в отношении пикселя фона. Поведение очень напоминает режим наложения Multiply в фотошопе.

Режимы наложения материалов

В структуре выше,материал был установлен в режим наложения Modulate с режимом затенения Unlit.

Режимы наложения материалов Сцена Режимы наложения материалов Вид из камеры
Режим смешивания Modulate лучше всего подходит для определенных эффектов частиц, но не забывайте, что он не поддерживает полупрозрачность и освещение.

Режимы наложения материалов
непонятно зачем тут эта гифка, но в оригинале тут стоял слайдер

Режим Описание
BLEND_Opaque Окончательный цвет = цвет источника. Это означает, что материал будет отрисовыватся поверх фона. Этот режим смешивания совместим с освещением.
BLEND_Masked Окончательный цвет = цвет источника если OpacityMask > OpacityMaskClipValue, в противном случае пиксель отбрасывается. Этот режим смешивания совместим с освещением.
BLEND_Translucent Окончательный цвет = цвет источника непрозрачности + целевой цвет (1 — непрозрачность). Этот режим смешивания не совместим с динамическим освещением
BLEND_Additive Окончательный цвет = цвет источника + целевой цвет. Этот режим смешивания не совместим с динамическим освещением.
BLEND_Modulate Окончательный цвет = цвет источника х целевой цвет. Этот режим смешивания не совместим с динамическим освещением, или туманом, если это не декаль.
Добавил: RedComrade Категория: Материалы и Шейдеры Читать дальше »

Сен 03 2015
Material instance

В Unreal Engine 4, Material Instance являются своего рода зависимыми копиями материала. Их используют чтобы изменять те или иные параметры материала, без перекомпиляции шейдеров. Чтобы использовать Material instance необходимо заранее создавать параметры в исходном материале. Так же Material instance можно использовать, чтобы изменять визуальный вид объекта, или эффекта, прямо во время игры.
Это позволяет создать очень гибкую визуальную составляющую вашего творчества.

Инстансы материалов редактируются в специальном редакторе, отличающийся от основного редактора материалов. Более подробно можно почитать на странице «Редактор инстанс материалов«.

 

 

 

Инстансы и параметры

Несмотря на то, что Material instance позволяет самостоятельно изменять внешний вид материала, необходимо знать, что вы не сможете редактировать каждую особенность материала, по умолчанию. Чтобы получить такую возможность, вы должны создать свойства исходного материала (Master Material) и назначить их в качестве параметров. Этот процесс называется параметризация материала.

Параметр материала, выглядит в виде узла данных в редакторе материалов. Технически, это значение которое имеет имя и служит в качестве канала для отправки значений в Material Instance. Эти параметры работают из материалов.
Скажем вы хотите создать материал, цвет которого вы сможете изменить в любой момент. Для этого вы должны всего лишь создать векторный параметр и дать ему имя. После того как вы создадите material instance этого материала. Вы увидите свой параметр под категорией Vector parametrs. Там вы можете его изменять, без необходимости перекомпиляции шейдеров или необходимости создавать отдельный материал.

Здесь вы можете увидеть параметры заложенные в материал.
Параметры в материале

А здесь мы их видим уже для редактирования в Material Instance
Параметры в Инстансе

Постоянные и динамические Material Instance

В Unreal Engine 4 доступны для использования 2 вида Material instance

Material Instance Constant – Заранее просчитывается до игрового процессса
Material Instance Dynamic – Изменения вступают в силу в процессе игры в реальном времени

Постоянный Material Instance

Постоянный Material Instance вычисляется только один раз, заранее, до игрового процесса. Это означает что он не может быть изменен во время игры. Однако, хоть они и являются неизменными, они имеют существенное преимущество в производительности поскольку не требуют компиляции. Например, если у вас есть игра с различными автомобилями, и все экземпляры с разными цветами, но цвета которых не изменяются в процессе игры. То лучше создавать Master Material, представляющий вариации для разных типов автомобилей. Это может быть краска, насколько физический материал металический, глянец и т.п

Material Instance Constant создаются в Content Browser и редактируются с помощью Material Instance Editor.

Динамический Material Instance

Material instance dynamic может быть рассчитан непосредственно во время игры или симуляции сцены. Это означает, что вы можете использовать сценарии (Blueprint или скомпилированный C++ код) чтобы изменить те или иный параметры Material instance на протяжении всей игры. Возможные применения этого ограничены только вашей фантазией. Однако стоит учитывать, что такие материалы, менее производительны чем Material instance constant.

Material instance dynamic создаются в Блупринте из основного материала (Master). В Blueprint можно применять данный материал к объекту, который имеет параметризированные свойства, и постоянно иметь к нему доступ через узел Create Dynamic Material instance. После создания Dynamic Material Instance, можно изменять параметры Material instance в игре, через сценарий Blueprint.

Изменение параметров через Блупринты

Создание Инстанса

Что бы создать статичный инстанс внутри редактора, вам нужно кликнуть правой клавишей мыши по материалу в Content Browser, для которого хотите создать инстанс. Затем выбрать опцию Create Material Instance.

Создать Material Instance

Параметры

Каждый параметр в материале, может быть организован для просмотра в Material Instance Editor. Связанные параметры могут быть добавлены к группе, что позволяет их быстро найти под выбранной категорией и изменить. Параметры, которые не добавлены в какую либо группу, будут отображаться в категориях по умолчанию (как правило это категории описывающие тип параметра скалярный, векторный и т.д)

Параметры Инстанса

Создание параметров в материалах

Для того чтобы добавить параметр для материала, используйте предназначенные для этого блоки категории Parameters. Есть несколько типов параметров, которые могут быть использованы, в том числе Scalar Parameter, Vector Parameter, различные параметры текстур, и Static Parameter.

После создания вашего параметра, дайте ему уникальное имя, а так же присвойте его к необходимой для вас группе. Так же необходимо задать значение которое будет использоваться по умолчанию.

Параметры в материале

Scalar Parameter

Scalar Parameter является параметром, который содержит одно значение с плавающей точкой. Оно может быть использовано для управления эффектами на основе отдельных значений, таких как сила отражения, альфа линейной интерполяции, прозрачность и т.п.

Vector Parameter

Vector parameter это параметр, содержащий в себе значения 4 канального вектора или 4 значения с плавающей точкой. Как правило они используются для настраивания какого либо цвета в материале. Но так же могут быть использованы для передачи данных о местоположении или для какого либо эффекта, который требует несколько значений.

Texture Parameter

Есть несколько доступных Texture Parameter. Каждый из них зависит от типа текстуры, что он принимает или способа, в котором он используется. Код шейдера, генерируется разный, в зависимости от типа текстуры.

TextureSampleParameter2D принимается основную Texture2D
TextureSampleParameterCube принимает TextureCube или cubemap
TextureSampleparameterFlipbook принимает FlipbookTexture
TextureSampleParameterMeshSubUV принимает Texture2D, которая используется для SubUV смешивания эффектов с сеткой эмитера
TextureSampleParameterMovie принимает MovieTexture (bink видео)
TextureSampleParameterNormal принимает Texture2D, которая используется в качестве Normal map
TextureSampleParameterSubUV принимает Texture2D, которая используется для SubUV эффектов с спрайтами

Static Parameter

Статические параметры принименяются во время компиляции, поэтому части, которые замаскированны, имеют более оптимальный код и не выполняются во время выполнения основного материала. Однако, они могут быть изменены только из MaterialInstanceEditor, и не могут быть изменены в Blueprint

Для каждого статического параметра будет создан отдельный вариант шейдера, который будет переключаться в инстансе.
Это может привести к чрезмерному кол-ву шейдеров. Что значительно ухудшит оптимизацию сцены. Постарайтесь свести к минимуму кол-во статических параметров в материале.
Добавил: Flakky Категория: Материалы и Шейдеры Читать дальше »

Мар 09 2015
Свойства материала

Свойства материала нужны для визуализации материала и его отдельных свойств, например способность отражать окружающую среду или рельеф материала.

Не все свойства обязательно применять и вносить в них изменения, так как они имеют значения по умолчанию. Например, когда вы создаете светящийся материал, вам может понадобится только Emissive Color, так как другие свойства не будут иметь значения или будут недоступны, в зависимости от Shading Model параметра. Из-за этого важно понимать, как должен выглядеть ваш материал в итоге. Всего существует три самых важных параметра:

Blend Mode — Определяет, как материал смешивается с пикселями позади.
Shading Model — Определяет, как поверхность материала влияет на свет.
Material Domain — Определяет, как будет использоваться материал.

Редактор материалов автоматически отключает неиспользуемые свойства в зависимости от параметров.

Подробнее о параметрах материалов.

Картинки сбоку кликабельны

 

Base Color

Свойство Base Color

Base Color определяет цвет материала.

 

 

 

Metallic

Свойство Metallic

Данное свойство определяет, насколько материал металезированный. Неметалические материалы должны иметь Metallic на нуле, в то время как металические — на еденицу. Для чистых поверхностей, рекомендуется использовать значение 0 ИЛИ 1. Для грязных, ржавых и т.п поверхностей возможно потребуется использовать значение между 0 и 1.

 

 

 

Specular

Свойство Specular

Данное свойство влияет на то, насколько блестящий неметаллический материал. На металлический материал данное свойство влиять никак не будет.

На практике, данное свойство должно оставаться без изменений(по умолчанию — 0.5) в большинстве случаях.

 

 

 

Roughness

Свойство Roughness

Шерховатость материала. При увелечении данного свойства, материал будет сильнее рассеивать свет. Благодаря чему, нулевое значение будет означать полностью гладкий и отражающий материал, а значение 1 будет полностью рассеивать свет.

 

 

 

Emissive Color

Свойство Emissive Color

Определяет, какая часть(при использовании маски) материала будет светится.

Значения больше 1 позволят создать HDR эффект и эффект свечения.

 

 

Opacity

Свойство Opacity

Данное свойство определяет прозрачность материала и доступно только при Translucent Blend Mode.

0 — Полностью прозрачный
1 — Полностью видимый

 

 

 

Opacity Mask

Свойство Opacity Mask

Аналогично Opacity, однако используется с Masked Blend Mode. Так же отличается от Opacity тем, что имеет лишь два состояния: Полностью прозрачный или полностью видимый.

Можете использовать Opacity Mask Clip Value для того, что бы отрезать маску для использования с данным свойством.

 

 

 

Normal

Свойство Normal

Данное свойство использует карту нормалей, которая служит для того, что бы создать рельеф(Эффект, не реальное выдавливание) для поверхности.

 

 

 

World Position Offset

Свойство World Position Offset

Данное свойство позволяет манипулировать вертексами объекта с помощью материала. Это полезно для того, что бы менять форму статичного объекта.

При использовании WPO для того, что бы изменить границы объекта, учтите, что рендер все равно будет использовать оригинальную геометрию, поэтому могут быть артефакты в тенях.

 

World Displacement и Tessellation Multiplier

Свойства World Displacement и Tessellation Multiplier

World Displacement работает примерно как и WPO, однако использует тесселляцию вместо обычных вертексов(как WPO). Для использования данного свойства, опция Tessellation должна быть включена в параметрах материала.

Tessellation Multiplier определяет силу тесселляции и используется для того, что бы добавить делатей там, где нужно. При использовании с World Displacement значение нужно выставить больше нуля.

При использовании World Displacement для того, что бы изменить границы объекта, учтите, что рендер все равно будет использовать оригинальную геометрию, поэтому могут быть артефакты в тенях.

 

 

Subsurface Color

Свойство Subsurface Color

Определяет цвет света, который проходит свозь поверхность. Например для материала людской кожи, цвет Subsurface должен быть красным, что бы симулировать влияние крови на свет, проходящий сквось поверхность.

Данное свойство доступно только при Translucent Blend Mode.

 

 

 

Ambient Occlusion

Свойство Ambient Occlusion

Данное свойство отвечает за само-затенение, которое часто зависит от неровности объекта или рельефа поверхности. Обычно соеденяется с АО картой, которая генеруется сторонней программой(пр: 3Ds Max или Zbrush).

 

 

 

 

 

Refraction

Свойство Refraction

Свойство, отвечающее за приломляемость поверхности. Полезно для таких поверхностей, как стекло или вода, которые приломляют свет, проходящий свозь материал.

Коэффиценты приломления для некоторых материалов:
Воздух — 1.00
Вода — 1.33
Лед — 1.31
Стекло — 1.52
Алмаз — 2.42

 

Clear Coat

Свойство Clear Coat

Данный эффект хорошо симулирует двуслойный материал, который имеет прозрачный слой поверх. Например деревянная поверхность покрытая стеклянной плитой для гладгости. Используется с Clear Coat Shading Model параметром.

Данная модель имеет два свойства:

Clear Coat: сила эффекта. 0 — обычный материал, 1 — Материал м Clear Coat слоем. Полезно для использования маски.

Clear Coat Roughness: Шерховитость Clear Coat слоя.

Добавил: Flakky Категория: Материалы и Шейдеры Читать дальше »

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница