Использование Френеля в своих Материалах в Unreal Engine 4

0
5
Использование Френеля в своих Материалах в Unreal Engine 4

Часто при создании фильма или кинематографии вам нужен способ лучше подчеркнуть силуэт персонажа. Эта техника освещения часто упоминается как освещение обода или краевое освещение и включает добавление дополнительных огней, чтобы лучше отличить силуэт персонажей от фона. Хотя это довольно хорошо работает для фильма, добавление дополнительных огней в любую 3D – сцену добавляет дополнительную сложность, которая быстро может стать трудно управляемой. Unreal Engine 4 (UE4) предлагает решение этого, позволяя художнику имитировать тот же базовый эффект, используя материал персонажа. Таким образом, художник имеет больший контроль над внешним видом эффекта и может даже использовать его для таких вещей, как добавление подсветки к неосвещенному объекту для экономии производительности.

Френель

Fresnel / Френель – это термин, используемый для описания того, как свет, который вы видите, отражается в разных интенсивностях, исходя из угла, с которого вы смотрите. Например, если вы стоите над бассейном, глядя прямо на бассейн, вы не увидите много отражений в воде. Когда вы начинаете двигать головой, чтобы вода в бассейне становилась все более параллельной вашему уровню глаз, вы начнете замечать все больше отражений в воде.

В UE4 узел Выражения Материала Fresnel вычисляет спад на основе точечного произведения нормали поверхности и направления к камере. Когда нормаль поверхности указывает прямо на камеру, выводится значение 0, что означает, что эффект Френеля не должен происходить. Когда нормаль поверхности перпендикулярна камере, выводится значение 1, что означает, что должен иметь место полный эффект Френеля. Затем результат зажимается до [0,1], поэтому у вас нет отрицательного цвета в центре. Следующее изображение демонстрирует эту концепцию.

Пример расчета FN UE4

В середине сферы, где находится 0, вы увидите, что эффекта Френеля нет. Это связано с тем, что камера указывает прямо на нормаль поверхности. По мере того как нормаль поверхности становится все более перпендикулярной к камере или приближается и приближается к числу 1, эффект Френеля становится все более заметным, и это тот тип поведения, которого мы хотим добиться.

Анализ Узла Френеля

При поиске выражения Fresnel Material Expression вы обнаружите, что есть Fresnel под Utility и один под Vector Ops. Хотя эти два Выражения Материала имеют одно и то же имя и делают то же самое, они отличаются тем, как именно вы их настроили для использования.

Утилита Fresnel

Fresnel, найденный в Utility, является тем, который используется в этом руководстве и является самым простым из двух для настройки и использования. Настоятельно рекомендуется использовать эту версию для начала, а затем перейти к другой, как только вы лучше поймете, как работает узел.

Узел ФН Френеля UE4

СвойствоОписание
ExponentInЭто контролирует падение Эффекта Френеля.
BaseReflectFrctionInЭто определяет долю зеркального отражения, когда поверхность просматривается с прямой. Установка этого значения на 1 эффективно отключает Френель.
NormalЗдесь вы можете ввести Normal, чтобы повлиять на визуализацию эффекта Френеля. Это свойство не может быть установлено путем подачи карты Нормали или ввода Vector 3.

У вас есть два варианта настройки значений для Выражения Материала Френеля.

  • Выберите Выражение Материала Fresnel в Графике Материалов, а затем введите значения через панель Details.

Изменение ФН через детали UE4

  • Добавьте константы или скалярные узлы в График Материалов, а затем подключите соответствующие входы.

Fn изменение графика UE4

При использовании карты Нормали обязательно добавьте узел Transform Expression. Это превратит карту Нормали из касательного пространства в мировое пространство. Если это преобразование не выполняется, ваша карта Нормали может не повлиять на Френель так, как вы планируете.

Fresnel Vector Ops

Fresnel, который находится под Vector Ops, представляет собой настраиваемую версию Fresnel, которая позволяет вам влиять на многие различные аспекты визуализации Fresnel. Однако эта добавленная функциональность имеет свои недостатки, поскольку неправильные настройки или установка могут привести к артефактам или ошибкам в том, как визуализируется эффект Френеля. Этот узел должен использоваться только в том случае, если Fresnel, находящийся в Utility, не дает результатов, к которым вы стремитесь.

Напряжение тока узла Френеля ФН UE4

СвойствоОписание
Normal Vector (V3)Здесь вы можете ввести Normal до эффекта, до которого визуализируется и эффект Френеля. Это свойство не может быть установлено путем подачи карты Нормали или инпута Vector 3.
Camera Vector(V3)Это позволяет влиять на Камеру, которая используется для определения Dot Product (Точечного Продукта) между камерой и нормалью поверхности.
Invert Fresnel(B)Это позволит вам инвертировать эффект Френеля. Это необходимо, когда вы хотите, чтобы Fresnel применялся только в центре или по краям.
Power(S)Это позволяет вам контролировать мощность эффекта Френеля. Ввод большего количества будет затягивать затронутые области. Меньшие числа позволят большему количеству областей попасть под влияние Френеля.
Use Cheap Contrast(B)Это позволит Френелю использовать более дешевый метод расчета контраста между светом и темнотой.
Cheap Contrast Dark (S)Это определяет, насколько темным будет Френель. Это будет иметь эффект, когда включена опция Use Cheap Contrast.
Cheap Contrast Bright (S)Это контролирует, насколько ярким будет эффект Френеля. Это будет иметь эффект, если включена опция Use Cheap Contrast.

Как использовать Fresnel в своем Материале

Создание Материала, использующего Fresnel, может быть выполнено в следующих шагах.

1. В этом примере мы собираемся создать новый Материал, но вы все равно можете применить изученный здесь концепт к любому существующему Материалу, который вы захотите. Чтобы создать новый Материал, щелкните правой кнопкой мышки в окне Контент Браузера, а затем выберите Материал в списке Create Basic Asset. Создав Материал, назовите его Fresnel_Material.

FN Creat New Material UE4 UE4

2. Откройте новый материал, дважды щелкнув по нему левой кнопкой мыши в браузере содержимого. Как только материал откроется, найдите нужные узлы выражения материала, выполнив поиск в меню поиска палитры. Чтобы поместить узлы материала Expression в График материалов, сначала выберите узел, который вы хотите разместить, с помощью кнопки левой мыши и нажатой левой кнопкой мыши , перетащите узел в График материалов. Для этого материала требуется следующий тип и количество узлов.

Имя узлаКоличество
Vector Parameter Node2
Scalar Node2
Fresnel Node1

Когда вы закончите, ваш Material Graph должен выглядеть так

FN добавление узлов UE4

Когда вы ищете Выражение Материала Fresnel, вы найдете два разных типа, которые вы можете выбрать. В данном руководстве мы будем использовать только Fresnel, который можно найти в Utility.

3. Теперь, когда требуемые узлы Выражения Материала были добавлены в График Материалов, пришло время начать соединять все вместе и указать базовые значения параметров. В этом примере мы будем использовать следующие имена параметров и значения по умолчанию.

ИмяЗначение
Base_Color0.5, 0.5, 0.5
Roughness0.5
Fresnel_Color1.0, 0.0, 0.0
Fresnel_Exp0.8

По завершении График Материалов будет выглядеть следующим образом

ФН завершенный материал UE4

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

FN применить сохранить UE4

5. Когда Материал теперь скомпилирован, сохранен и закрыт, найдите Материал в контент браузере и щелкните его правой кнопкой мышки. В появившемся меню выберите опцию Create Material Instance. Как только вы это сделаете, будет создан новый Экземпляр Материала. По завершении вашего Content Browser должен выглядеть так

FN создать новый экземпляр материала UE4

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

Помните, что ввод больших чисел в Fresnel_Exp будет приближать эффект Френеля ближе к краям, а более низкие числа приближают эффект к центру. Вот пример того, что происходит с Fresnel, когда значение Fresnel_Exp имеет разные значения. Обратите внимание, как с увеличением числа эффект Френеля приближается и приближается к краям меши, как в следующем примере.FN различные значения Exp Френеля UE4

Френель и Карты Нормали

Если вы введете Карту Нормали в обычный вход Френеля, вы увидите, что вы можете воздействовать на поверхность несколькими очень интересными способами. Это происходит из-за влияния карт Нормали на нормаль поверхности. Как мы узнали ранее, Френель работает, проверяя, является ли нормаль поверхности перпендикулярной к камере или нет. Если она перпендикулярна к камере, то эффект Френеля будет иметь место. На гладкой сфере это означает, что Френель будет проходить только по краям объекта. Однако, когда вводится карта Нормали, мы меняем нормаль поверхности, чтобы она не была гладкой, позволяя эффекту Френеля происходить в тех местах, в которых обычно эффекта не было бы, если бы Нормаль поверхности была гладкой.

Для наглядного примера того, что происходит, взгляните на следующее изображение, показывающее эффект, который имеет нормаль поверхности на Френеле. Слева (изображение 1) – это то, что выводит узел Френеля с нормалью плоской поверхности. Теперь взглянем на правую сторону (изображение 2.). На этом изображении была введена карта Нормали, которая радикально изменяет нормаль поверхности. Поскольку нормаль поверхности больше не плоская, вы получаете больше отображаемого Френеля.

Влияние ФН на поверхностном нормали UE4

На изображении ниже мы видим, как различные карты Normal могут влиять на Fresnel по-разному

FFN Френель & карта нормалей UE4

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

  • Режим смешивания материалов Blend Mode был изменен с Opaque на Translucent.
  • Окончательный выход для Fresnel, который был подключен ко входу Emissive Color, также был подключен ко входу Opacity.
  • Новый  2D Texture Sampler (2D-анализатор текстур) был добавлен и подключен ко входу Normal. Tech_Hex_Tile_N из Starter Content использовался как текстура Нормали.
  • Добавлен новый Скалярный Параметр, который умножается на выражение Texture Coordinates, чтобы реализовать базовое равномерное титрование на карте Нормали.

FN добавление карты нормалей UE4

Выражение Материала Френеля также может быть снабжено картой Нормали, которая может повлиять на способ рендеринга Френеля. Это особенно нужно, если вы хотите использовать Fresnel для отображения чего-то вроде энергетического экрана на Материале, но при этом этот Материал выглядит нормальным, когда экран не активен. Чтобы достичь этого, используя вышеприведенный Материал, необходимо сделать следующее:

  1. Начните с Обновления режима Translucency Lighting Mode, изменив его с Volumetric Non Directional на Surface Translucency Volume.
  2. Измените Base Color и Roughness, чтобы использовать текстуру T_Brick_Clay_New_D из Starter Content.
  3. Затем измените инпут Нормали так, чтобы он использовал T_Brick_Clay_New_N, который также можно найти в Starter Content.
  4. Затем найдите узел Transform Expression в Палитре и добавьте его в График Материалов. Убедитесь, что он настроен на преобразование из пространства касательной Tangent в пространство мира World.
  5. Подключите узел карты старой Нормали текстурной текстуры ко входу узла Transform и подключите его выход ко входу Нормали на узле Fresnel, и в конце ваш Материал должен выглядеть примерно так

Fn нормальный вход Френеля UE4

Обратите внимание, как выглядят кирпичи, они не имеют никакого отношения к Френелю. Вы даже можете сделать этот шаг, добавив узел выражения Multiply и Constant Expression, а затем используя это для управления интенсивностью эффекта Френеля. Вот как это будет выглядеть при добавлении к Материалу сверху

Влияние Fresnel управлением FN UE4

Регулируя добавленную константу Constant, вы можете контролировать, как Френель влияет на поверхность. Установка числа в 0 отключает эффект, а его настройка на какое-либо еще значение будет постепенно показывать эффект, как в приведенном ниже примере:

Сумма эффекта FN UE4

Другое использование для Френеля

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

  • Input Blending. Вы можете использовать Fresnel как альфа для LERP, чтобы контролировать, как инпуты в LERP объединяются вместе.

Fn Lerp смешивание UE4

Вывод

Добавление Френеля к Материалу – отличный способ помочь лучше осветить силуэт персонажа или помочь показать особый эффект энергетического экрана. Помните, что Fresnel работает на основе угла обзора и нормали поверхности, поэтому, если вы хотите добавить некоторые интересные детали к Френель, попробуйте использовать карту Normal, в которой есть немного случайного шума. Также не забывайте, что вы можете использовать выражение Fresnel Material Expression, чтобы помочь смешивать два разных входа, что очень удобно для визуальных эффектов, таких как огонь или дым.