Использование Рефракции в Unreal Engine 4

0
3
Использование Рефракции в Unreal Engine 4

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

Рефракция

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

Использование Рефракции в Unreal Engine 4Часть карандаша, находящегося под водой, будет согнута при просмотре с камеры из-за преломления. Это происходит потому, что световые волны от X, исходного положения карандаша, подвергаются воздействию преломления воды и, по-видимому, приходят от Y, если смотреть с камеры. Это происходит потому, что скорость, с которой свет перемещается, изменяется, когда она попадает в воду, а затем снова меняется, когда она попадает в воздух.

Индекс Рефракции или IOR

Индекс рефракции или IOR – это оптическое измерение, которое можно использовать, чтобы точно указать, сколько света будет преломляться, когда свет распространяется от одной среды к другой. Поскольку это явление освещения можно измерить, мы можем использовать эти измерения внутри UE4, чтобы повлиять на то, как будет выглядеть рефракция, давая лучшее ощущение реализма нашему 3D-миру. Ниже приведены некоторые значения IOR для объектов, с которыми вы могли бы взаимодействовать каждый день.

МатериалЗначение IOR
Воздух1,00
Вода1,33
Лед1,31
Стакан1,52
Ромб2,42

Использование Рефракции в Материалах

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

Этот учебник был написан в предположении, что вы включили в свой проект Starter Content. Если вы этого не сделали, ознакомьтесь с тем, как Перенести исходный контент из другого проекта в этот.
  1. Сначала создайте новый Материал с помощью правой кнопки мышки в окне Контент Браузера, а затем выберите Материал из Списка Основных Активов и назовите Материал Refraction_MaterialКогда это будет завершено, контент браузер должен выглядеть так.создать Refraction Material UE4

2. Откройте созданный выше Материал и левой кнопкой мышки дважды щелкните по Материалу в контент браузере. После открытия измените режим смешивания Blend Mode с Opaque на Translucent и измените модель освещения Lighting Model с Volumetric Non Directional на Surface Translucency VolumeКогда это будет завершено, панель Материала Details должна выглядеть так.панель Материала Details UE4

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

  • Constant x 5
  • Lerp x 1
  • Fresnel x 1Узлы Выражения Материала UE4

4. Когда все необходимые узлы Material Expression добавлены в Material Graph, пришло время соединить все вместе. Когда закончите, ваш Material Graph должен выглядеть так.График Материала UE4

5. Для более легкого тестирования в дальнейшем выберете узел Constant Material Expression, входящий в инпут B Лерпа и щелкните правой кнопкой мышки по нему. В появившемся меню выберите вариант Convert to Parameter. Как только это будет завершено, обязательно укажите ввод. В этом примере мы будем использовать IOR как имя. Когда закончите, ваш Material Graph должен выглядеть так.График Материала IOR UE4

6. Теперь, когда Материал настроен, не забудьте нажать кнопки Apply и Save и закрыть Материал.кнопки Apply и Save UE4

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

8. Теперь созданный экземпляр Material Instance добавит некоторые объекты в мир, чтобы мы могли лучше просмотреть наш материал. Если вы включили Starter Content в ваш проект, вы можете найти массу различных фигурных мешей, расположенных внутри папки Shapes. В этом примере в мир добавлены Куб, Конус и Сфера.Добавление Мешей UE4

Если вы не можете найти Куб, Конус и Сферу, это может означать, что вы не включили Starter Content в свой проект. Если вы не включили его, вы можете либо создать новый проект, на этот раз обязательно включите в него Starter Content, либо вы можете перенести исходный контент Starter Content из другого проекта в этот.

9. Теперь, когда есть некоторые формы тестирования, примените Экземпляр преломленного Материала к фигурам, сначала выбрав Экземпляр Материала с помощью левой кнопки мышки в контент браузере, а затем перетяните Экземпляр Материала по фигуре и отпустите левую кнопку мышки. Когда вы закончите, у вас должно получиться что-то похожее на вашем уровне.применение преломленного Материала к фигурам UE4

10. Откройте Экземпляр Преломленного Материала, дважды щелкнув по нему левой кнопкой мышки в контент браузере. После открытия включите параметр IOR, щелкнув флажок с помощью левой кнопки мышки. После активации вы можете установить IOR на разные значения, чтобы имитировать взаимодействие с другими поверхностями. Ниже приведен пример изменения IOR по умолчанию 1.33, IOR Воды, 1.52, Стекла и, наконец, 2.42, Алмаза.

Советы и рекомендации по Рефракции

В следующем разделе мы рассмотрим некоторые другие способы использования преломления в сочетании с другими аспектами Редактора Материалов, чтобы получить некоторые очень интересные результаты.

Рефракция и Карты Нормали

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

  1. Сначала найдите карту нормали для использования. В этом примере использовался T_Brick_Clay_Old_N, однако любая Нормаль будет работать. После того, как Normal будет найдена, откройте Refraction_Material, а затем перетащите карту нормали из контент браузера в График Материалов.перетащить карту нормали из контент браузера UE4

2. Как только карта нормали будет помещена в График Материалов, подключите ее ко входу Normal. После того, как она будет подключена, выберите узел Экземпляр текстуры карты нормали и щелкните правой кнопкой мышки по нему. Из отображаемого меню выберите параметр Convert to Parameter и укажите ему имя Normal_Map.

3. Обязательно нажмите кнопки Apply и Save, а затем закройте Материал.кнопки Apply и Save UE4

4. Когда Материал скомпилирован и сохранен, откройте экземпляр материала и посмотрите под Parameter Groups в разделе Texture Parameters Values. Здесь вы должны увидеть карту нормали как редактируемый параметр. Чтобы изменить карту нормали, все, что вам нужно сделать, это сначала включить ее, щелкнув галочку в сером цвете. После включения вы можете изменить карту нормали, найдя новую карту нормали в Контент браузере, и затем используя кнопку Use Selected Assets from the Content Browser, чтобы назначить выбранную Карту Нормали в Экземпляр Материала.

5. Изменяя карту нормали, вы можете повлиять на то, как рефракция выглядит интересными способами. Вот несколько примеров, использующих только карты нормали, которые вы можете найти в папке Textures в Starter Content.Использование Рефракции в Unreal Engine 4

Преломление и движение

Если вы добавите узел выражения материала Panner в График Материалов и вставите его в UV’s текстуры карты Нормали, вы получите некоторые очень интересные результаты. Хотя этот метод может быть полезен для стеклянного окна, он будет очень полезен и для Визуальных Эффектов, таких как тепловая дымка или искажение от огромного взрыва. Преломление и движение выражения материала UE4

Refraction Depth Bias

Refraction Depth Bias (смещение глубины преломления) – это способ предотвращения попадания более близких объектов в искаженную поверхность с острыми углами обзора. Однако это может увеличить разрыв между поверхностью и началом рефракции. Вы можете отрегулировать Refraction Depth Bias в следующих двух местах внутри UE4.

  • Material Editor (Редактор материалов) – Вы можете найти Refraction Depth Bias на панели Details в разделе Material. Чтобы открыть это свойство, вам нужно нажать на белый треугольник (выделено зеленым цветом).смещение глубины преломления UE4
  • Material Instance – Вы можете найти Refraction Depth Bias в разделе General на панели Details.Refraction Depth Bias в разделе General UE4

Вывод

Добавление рефракции к вашим материалам, особенно к стеклу и воде, – отличный способ получить очень реалистичные результаты. Не забудьте использовать правильное значение IOR для типа поверхности, которую вы пытаетесь имитировать. У вас также может возникнуть соблазн вытолкнуть значение IOR за пределы того, что используется для типа поверхности, но нужно противостоять этому побуждению. Значения IOR исходят из измеренных значений реального мира, поэтому увеличение IOR выше или ниже, чем оно должно быть, в итоге не будет выглядеть лучше.