Использование Прозрачности в Unreal Engine 4

0
14
Использование Прозрачности в Unreal Engine 4

При создании определенных типов поверхности, таких как вода или стекло, вам нужно, чтобы поверхность не только просматривалась, но и придавала поверхности ощущение глубины и цвета. В реальном мире эти свойства часто называются Transparency (прозрачность) или Opacity (непрозрачность) и часто используются взаимозаменяемо, чтобы описать одно и то же. Однако внутри Unreal Engine 4 (UE4) Transparency используется, чтобы описать, является ли поверхность прозрачной или нет, в то время как Opacity используется для определения того, как просматривается поверхность. В следующем руководстве вы узнаете все, что вам нужно знать о том, как внедрить прозрачность ваших Материалов в Unreal Engine 4.

Transparency – Прозрачность

Transparency – это термин, используемый для описания способности поверхности блокировать или пропускать свет. Например, кирпич был бы объектом, который не имеет прозрачности, в то время как витражное стекло будет объектом с прозрачностью. Внутри UE4 Transparency работает так, что позволяет пикселям не быть 100% непрозрачными или не просматриваться, но иметь определенную степень Прозрачности или “просматриваемости” сквозь себя.

Использование Прозрачности в Unreal Engine 4На изображении выше показано, как Transparency работает в UE4 с использованием текстуры, чтобы определить, какие области должны иметь прозрачность и насколько прозрачны эти области. Текстура – это градиент, который идет от черного вверху или полная прозрачность, к белой внизу или без прозрачности. Области посередине имеют разную степень прозрачности, основанную на том, насколько близок к черному или белому пиксель в текстуре.

Transparency & Opacity – Прозрачность и непрозрачность

При работе с Transparency в UE4 вы также будете слышать такие термины, как использование Opacity. Opacity (Непрозрачность) относится к тому, как видно сквозь поверхность, а Transparency используется для описания того, как можно видеть поверхность. На изображении ниже мы видим это в действии.

Прозрачность и непрозрачность UE4Начиная с левой стороны и перемещаясь вправо, непрозрачность материала увеличивается от 0 до 1. Это делает материал полностью прозрачным или просматриваемым, полностью непрозрачным или не просматриваемым. Однако это происходит только потому, что материал был настроен так, что он использует Transparency. Изменение непрозрачности материала, который не настроен для прозрачности, не повлияет на то, насколько прозрачен этот материал.

  • Transparency: используется, чтобы определить, можно ли увидеть поверхность.
  • Opacity: используется для определения прозрачности или непрозрачности (как прозрачная / не просматриваемая) поверхности.

Использование Прозрачности в Материалах

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

В этом руководстве будет использоваться контент, который можно найти, если вы включили Starter Content в свой проект. Если вы не включили Starter Content в свой проект, вы можете просмотреть страницу Миграция контента для получения информации о том, как перемещать контент между проектами. Таким образом, вы можете добавить исходный контент в свой проект и не создавать новый.
  1. Сначала правой кнопкой мышки в контент браузере, а затем в разделе Create Basic Asset во всплывающем меню выберите Material.Создать новый Материал UE4

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

3. Теперь, когда ваш Материал открыт, перейдите на панель Details, и в разделе Material установите режим Blend Mode с Opaque на Translucent.режим Blend Mode UE4

4. Теперь, когда режим смешивания Blend Mode установлен правильно, найдите следующие узлы Выражения Материала. Вы можете найти узлы, используя следующие имена для поиска их в Material Pallet. После нажатия на них Левой кнопкой мышки, перетащите их в График Материалов, отпустив левую кнопку мышки, чтобы поместить их в график.

  • Vector Parameter x 1
  • Scalar Parameter x 1

требуемые узлы блестящего материала UE45. При добавлении правильных узлов Выражения Материала теперь пришло время объединить все. Сначала назовите узел Vector Parameter для Base_Color и присвойте ему значение цвета. Для этого примера цвет белого был введен как цвет по умолчанию. Затем подключите вывод узла Vector Parameter ко входу Base Color. После этого назовите параметр Scalar Parameter как Transparency_Amount и дайте ему значение по умолчанию 0,5. Затем подключите вывод Scalar Parameter ко входу Opacity в главном шейдерном узле.

Объединить узлы UE46. Не забудьте нажать кнопки Apply и Save и закрыть Редактор Материалов.кнопки Apply и Save UE4

7. Найдите Transparency_Material в контент браузере и кликните правой кнопкой мышки по нему и в появившемся меню выберите опцию Create Material Instance.

8. Теперь нам нужно найти объект для размещения Экземпляра Материала, чтобы мы могли видеть Материал в действии. Внутри контент браузера в папке Starter Content есть папка Shapes. Найдите Shape_Sphere, выберите его левой кнопкой мышки, а затем перетащите его на текущий уровень левым кликомВ нужном вам месторасположении отпустите левую кнопку мышки, чтобы поместить сетку в уровень.размещение Экземпляра Материала UE4

9. С тем, с чем на уровне нужно протестировать, найдите Transparency_Material_Inst, который был создан ранее в Content BrowserПосле этого выберите его левой кнопкой мышки и перетащите его из контент браузера в Shape_Sphere. Над Shape_Sphere отпустите Левую кнопку мышки, чтобы применить Экземпляр Материала к меши.

10. После того как экземпляр материала был применен к меши, откройте экземпляр материала, дважды щелкнув по нему левой кнопкой мышки в контент браузере. После открытия включите Transparency_Amount, нажав на отмеченную галочкой отметку левой кнопкой мышки. После включения вы можете настроить значение Transparency_Amount, чтобы изменить прозрачность объекта.

Transparency & Reflections – прозрачность и отражение

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

  1. В контент браузере двойным кликом левой кнопки мышки откройте Transparency_Material, который был создан выше. После открытия на панели Details в разделе Translucency измените режим Translucent Light Mode с TLM_Volumetric Non Directional на TLM Surface.Translucent Light Mode UE4

2. Внутри графика материалов выберите выражение материала Transparency_Amount и дважды дублируйте его, нажав CTRL + W на клавиатуре. Когда закончите, ваш Material Graph должен выглядеть примерно так.

выражение материала Transparency_Amount UE43. Переименуйте два узла выражений материала в Metallic и Roughness. Установите значение по умолчанию для выражения материала Metallic равным 1.0 и установите значение по умолчанию Roughness равным 0. Затем подключите каждый узел выражения материала к соответствующему входу в основном узле материала.узлы материала Metallic и Roughness UE4

4. Обязательно нажмите кнопки Apply и Save и затем закройте График Материалов.кнопки Apply и Save UE4

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

отражение и прозрачность на меше UE4Регулируя параметры экземпляра материала, вы можете с помощью Transparency получить чрезвычайно отличающиеся результаты.

параметры экземпляра материала UE4Использование Прозрачности

Прозрачность может использоваться для моделирования различных типов поверхности реального мира. Ниже приведен список некоторых наиболее распространенных применений для Transparency внутри UE4.

  • Волосы
  • Стекло
  • Вода
  • Визуальные эффекты дыма или огня
  • Облака
  • Ударные знаки
  • Листва

Прозрачность и производительность

Прозрачность и производительность материала UE4Рендеринг большого количества объектов с прозрачностью поверх друг друга, особенно при использовании освещенной прозрачности, может очень быстро стать узким местом рендеринга / производительности. Термин, используемый для описания этой проблемы, называется Overdraw и он возникает, когда у вас много объектов с Transparency, воспроизводимых поверх друг друга. Причина, по которой перегрузка может привести к такой проблеме производительности, заключается в том, что рентабельность рендеринга прозрачности становится все более и более дорогостоящей для каждого слоя Transparency, который вы вводите.

Чтобы помочь вам лучше определить, происходит ли эта проблема, и где UE4 имеет специальный режим просмотра, называемый режимом Shader ComplexityРежим Shader Complexity показывает, насколько сложна данная поверхность для рендеринга, используя цвета, чтобы показать сложность. Чем больше зеленого цвета вы видите, тем дешевле вещи для визуализации, и чем больше красного вы видите, тем более рентабельными становятся все более и более дорогие вещи. Чтобы включить этот режим просмотра, все, что вам нужно сделать, это следующее.

  1. Чтобы включить Shader Complexity, левой кнопкой мышки выберите параметр View Mode в верхней части окна Editor. В настоящее время для режима просмотра установлено значение Lit по умолчанию.значение режима Lit по умолчанию UE4

2. После того, как вы нажмете на режим просмотра левой кнопкой мышки, появится меню. В меню выберите опцию Shader Complexity.опция Shader Complexity UE4

3. После нажатия на параметр Shader Complexity вьюпорт уровня должен выглядеть следующим образом.

параметр Shader Complexity UE4С этой точки зрения вы можете указать, где могут возникать возможные проблемы с производительностью. Области, которые находятся в красном цвете, становятся очень дорогими для рендеринга, а области, которые вы видите зеленым, дешевле визуализировать. Хотя на 100% невозможно или желательно избавиться от всех перегрузок, этот режим просмотра может быть очень полезным при попытке выяснить, где именно могут возникать ваши проблемы с производительностью.

Приоритет сортировки Прозрачности

Когда у вас будет несколько прозрачных объектов в сцене, вы рано или поздно заметите, что объекты Transparent сталкиваются с проблемой, выясняя, какой объект визуализировать впереди или за другими прозрачными объектами. Следующий пример демонстрирует это, используя материалы, которые были созданы выше, и освещенный дым VFX из Starter Content.

Обратите внимание, как дым будет сначала перед мешами, а затем внезапно появится позади меши. Чтобы этого не происходило, Translucency Sort Priority (приоритет сортировки прозрачности) должен быть установлен таким образом, чтобы VFX дыма всегда отображался поверх другой прозрачности в сцене. Чтобы изменить приоритет сортировки прозрачности на VFX, выполните следующие действия.

  1. Сначала выберите объект или объекты, которые вы хотите отобразить поверх всей другой прозрачности на уровне, нажав на них левой кнопкой мышки. В этом примере мы будем выбирать дым VFX.

сортировка прозрачности материала UE42. На панели Details в разделе Rendering нажмите White Triangle (Белый треугольник), чтобы открыть дополнительные свойства.

3. В новом списке параметров найдите Translucency Sort Priority (приоритет сортировки прозрачности)а затем введите значение 100.

приоритет сортировки прозрачности UE4

По умолчанию все, что добавлено к уровню, имеет Translucency Sort Priority (приоритет сортировки прозрачности) равным 0. Если вам требуется нечто прозрачное, чтобы всегда рисовать поверх всего прозрачного, используйте положительные числа. Если вам нужно что-то прозрачное, чтобы всегда рисовать за прозрачными объектами, используйте отрицательные числа.

4. Теперь проверьте дым VFX на сцене. Если приоритет сортировки прозрачности установлен на 100, дым будет всегда рисоваться поверх других полупрозрачных объектов.

5. Установка Translucency Sort Priority на – 100 сделает его таким, чтобы дым всегда тянулся за другими полупрозрачными объектами.

При настройке Translucency Sort Priority может быть устранена проблема сортировки на уровне, она может вводить новые проблемы сортировки при появлении эффектов или объектов во время игры. По данной причине это является хорошим способом определить, какой номер приоритета сортировки прозрачности использовать и где. Например, вы можете сказать, что все порожденные эффекты будут иметь приоритет сортировки прозрачности на 100. Таким образом, если на уровне есть какие-то проблемы с сортировкой, вы можете настроить объекты на уровнях Transucency Sort Priority на любое число до 99. Таким образом, воспроизведенные игровые эффекты всегда будут отображаться поверх всего остального независимо от того, какое значение Transcendency Sort Priority на уровне имеют объекты.

Вывод

Transparency (Прозрачность) – очень мощный инструмент, который может помочь сделать ваши 3D-проекты действительно ожившими. Однако, как и при использовании любого мощного инструмента, необходимо следить за тем, чтобы эта мощность была проверена. Не забудьте сохранить количество прозрачных объектов, которые по мере возможности используют отражения. Также убедитесь, что вы постоянно проверяете режим Shader Complexity как в редакторе, так и во время игры, чтобы убедиться, что Transdency overdraw сведен к минимуму.