Добавление деталей к Текстуре в Unreal Engine 4

0
13
Добавление деталей к Текстуре в Unreal Engine 4

При просмотре Материала очень внимательно, вы заметите, что Текстуры, используемые в Материале, разбиваются и становятся очень “пикселизированными”, что приводит к чему-то, что выглядит не очень хорошо. Чтобы решить эту проблему, вы можете использовать то, что известно как детальную текстуру, чтобы скрыть пикселизацию Текстуры, когда Материал просматривается очень близко.

Детальное Текстурирование

Detail Texturing (Детальное текстурирование) позволяет вам предоставить иллюзию большего количества деталей в Текстуре, введя очень повторяющуюся комбинацию Diffuse и Normal, которая накладывается поверх исходного Diffuse и Normal для объекта. Это дает иллюзию большей детализации на близком расстоянии, чем это обычно было бы возможно. Вот пример детального текстурирования в действии.

Детальное текстурирование UE4

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

Подробный анализ текстурного узла

Если вы выполните поиск «Detail Texturing» в палитре Palette, вы найдете функцию материала DetailTexturing, которую вы можете использовать. Хотя это не единственный способ применить Детальные Текстуры к Материалам, это все же самый быстрый, поскольку все, что вам нужно сделать, это просто ввести Текстуры и настройки, которые вы хотите использовать.

Разбивка узла DT UE4

СвойствоОписание
Scale(S)Это задает масштаб детализации Текстуры. Большие числа приводят к большему количеству титрования меньших чисел, что приводит к меньшему количеству титрования.
Diffuse(V3)Это инпут для Diffuse Texture.
DetailDiffuse(T2d)Это инпут для текстуры Diffuse Detail Texture. Этот инпут может принимать только Texture Object (объект текстуры).
DiffuseIntensity(S)Контролирует интенсивность Detail Diffuse Texture.
Normal(V3)Это инпут для Текстуры Карты Нормали.
DetailNormal(T2D)Это инпут для Детализированной Текстуры Карты Нормали. Этот вход может принимать только Texture Object (объект текстуры).
NormalIntensity(S)Контролирует интенсивность Детализированной Текстуры Карты Нормали.

Преобразование Образца Текстуры в Объекты Текстуры

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

1. Сначала найдите Текстуру, которую вы хотите использовать как Текстуру детализации.

Текстура DT регулярн UE42. После того, как Текстура найдена, щелкните правым кликом по Текстуре. Когда вы это сделаете, появится меню и из этого меню выберите опцию Convert To Texture Object.

DT преобразовать текстуру в объект UE4

3. Так будет выглядеть Texture Sampler после завершения

Текстура объекта текстуры DT UE4

Как использовать Детальное Текстурирование в вашем Материале

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

Весь контент, который используется в следующих разделах, может быть найден, если вы включите Starter Content в свой проект. Хотя методы, показанные здесь, будут работать с любыми Текстурами, но, если вы захотите следовать им, убедитесь, что ваш проект включает в себя Starter Content.

Однако, прежде чем мы начнем, сначала создадим очень простой Материал для тестирования. Чтобы сделать это, щелкните правой кнопкой мышки по контент браузеру, а затем в разделе Create Basic Asset во всплывающем меню выберите Material. После выбора будет создан новый Материал. Назовите материал Detail_Material. По завершении ваш Content Browser должен выглядеть следующим образом.

DT создать новый материал UE4

С функцией материала детального текстурирования

1. Сначала откройте Материал, который был создан выше, двойным кликом по нему внутри контент браузера.

2. Открыв Материал, добавьте следующие Текстуры, перетащив их из своего местоположения в контент браузере в График Материалов.

  • T_Brick_Clay_Old_D
  • T_Brick_Clay_Old_N
  • T_Ground_Gravel_D
  • T_Ground_Moss_N

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

DT добавление текстур UE4

3. Со всеми необходимыми текстурами, добавленными в График Материалов, настало время добавить функцию материала Detail Texturing Для этого сначала выполните поиск в палитре для детального текстурирования.

DTSearch DTMF UE4

4. Когда Функция Материала Detail Texturing была выбрана, щелкните по ней левой кнопкой мышки, а затем нажатой левой кнопкой перетащите Функцию Материала Detail Texturing из палитры в График Материала. После обработки Графика Материала отпустите левую кнопку мышки, чтобы разместить функцию материала Detail Texturing в График Материалов.

DT добавление DTMF UE4

5. Теперь, когда добавлена ​​Функция Материала Detail Texturing, теперь пришло время подключить необходимые входы и выходы, чтобы ваш Материал работал. В этом примере мы будем использовать Текстуры  T_Brick_Clay_Old в качестве наших Базовых Текстур и T_Ground_Gravel в качестве наших Детализированных Текстур. Это означает, что карты Diffuse и Normal для T_Brick_Clay_Old должны поступать в Diffuse и Normal, а карты T_Ground_Gravel Diffuse и T_Ground_Moss Normal должны поступать в инпуты Detail Diffuse и Detail Normal. В итоге ваш Material Graph должен выглядеть так:

DT подключил текстуры UE4

Помните, что Образцы Текстуры T_Ground_Gravel Diffuse и T_Ground_Moss карты Нормали должны быть преобразованы в Объекты Текстуры, иначе Материал не будет работать. Для получения дополнительной информации о том, как это сделать, обратитесь к разделу Converting Texture Sample to Texture Objects выше.

6. Теперь, когда Текстуры подключены, настало время добавить некоторые выражения материала Constant Material Expressions, чтобы можно было изменить настройки масштаба и интенсивности текстур Detail Textures. Чтобы найти Constant Material Expression, найдите Constant в Палитре Материалов, а затем перетащите Константу из палитры Palette в График Материала. После того, как вы добавили одно выражение Constant Material Expression, дублируйте его, сначала выбрав его, а затем дважды нажав CTRL+W на клавиатуре. В конце концов у вас будет три выражения Constant Material Expressions.

DT добавление постоянных узлов UE4

7. При соответствующем количестве узлов Constant Material Expression, добавленных в Material Graph, пришло время подключить их и заполнить их данными. Для этого все, что вам нужно сделать, – это подключить выходные данные узлов выражения Constant Material Expression ко входам функции материала Detail Texturing. Затем введите значение 1 в каждый из узлов выражения материала Constant Material Expression. В итоге ваш Material Graph должен выглядеть так.

DT все подключения UE4

8. Регулируя значения узлов выражения Constant Material Expression, вы можете повлиять на то, как будут выглядеть Детализированные Текстуры. Вот пример того, что происходит, когда вы устанавливаете значение шкалы в значение 1, затем 5 и, наконец, 10.

DT различные настройки масштаба UE4

Без функции материала детального текстурирования

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

1. Сначала создайте копию Detail_Material, щелкнув правой кнопкой мышки по Материалу внутри Content Browser, а затем выберите Duplicate из меню.

DT дублирующий материал UE4

2. Создайте ярлык для Material Detail_Material_2. По завершении, Content Browser должен выглядеть так.

Названный материал дубликата DT UE4

3. Откройте новый созданный Материал, дважды кликнув по нему левой кнопкой мышки. При открытии удалите все, кроме Текстуры, и убедитесь, что они преобразуют Объекты Текстуры обратно в Образцы Текстуры сначала путем выбора всех Объектов Текстуры правой кнопкой мышки, а затем выбором в меню Convert To Texture Sampler. По завершении График Материалов будет выглядеть следующим образом.

Настройка новых материалов DT UE4

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

  • Texture Coordinate x 1
  • Clamp x 1
  • Constant x 2
  • Add x 2
  • Multiply x 3

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

DT требуемые узлы UE4

5. Когда все необходимые узлы Material Expressions добавлены, настало время начать все заново подключать. Первый раздел, который будет подключен, – это часть  Base Color. По завершении График Материалов будет выглядеть следующим образом.

Соединения основного цвета DT UE4

6. Затем Карта Нормали должна быть подключена так же, как и Base Color. По завершении График Материалов будет выглядеть следующим образом.

DT нормальные соединения карты UE4

7. Теперь, когда  Base Color и Normal map соединены вместе, Материал теперь готов к компиляции, сохранению и использованию.

DT полный материал UE4

Советы и подсказки в детальном текстурировании

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

Детальное Текстурирование на основе расстояния

При работе с большими поверхностями, такими как ландшафт, вы заметите, что, хоть Текстуры, которые вы используете, могут иметь название, но все же есть много заметных повторений, которые выглядят не так хорошо, особенно если смотреть на расстоянии. Чтобы исправить это, мы можем опираться на Detail Material, который был создан ранее, чтобы он отображал одну Текстуру, когда камера близко, а другая Текстура, когда камера находится далеко. Это часто называют Distance Based Texture Blending (смешением Текстур на основе расстояния) и может быть настроено в соответствии с инструкциями ниже.

1. Сначала сделайте копию Detail_Material_2 и назовите его Distance_Fade. После имени откройте Материал и выполните поиск в Palette для следующих узлов Выражения Материала и добавьте их в График Материалов.

  • World_Position x 1
  • Camera_Position_WS x 1
  • Distance x 1
  • Divide x 1
  • Power x 1
  • Clamp x 1
  • Constant x 2

2. Когда все необходимые узлы Выражения Материала добавлены в График Материалов, мы можем начать все подключать. Расстояние, на котором происходит изменение Текстуры, контролируется первой Constant, которая подключается к выражению Divide Material Expression, в настоящее время соответствует значению 512 экземпляра. В итоге у вас должно получиться что-то похожее:

Узлы наложения на основе расстояния DT UE4

3. После того, как смешение на основе расстояния завершено, оно теперь может быть добавлено к остальной части Материала. Для этого сначала нужно добавить два выражения материала LERP к Графику Материалов. Это связано с тем, что альфа-вход LERP Material Expressions будет определять расстояние, на которое переключаются Текстуры. Тогда это просто вопрос, связанный с остальной частью Материала. Единственное различие между этим Материалом и оригиналом заключается в том, что вместо того, чтобы добавлять Текстуры вместе в конце, используется LERP. В итоге ваш Material Graph должен выглядеть так:

ДТ расстояния завершено материалы UE4

4. Чтобы увидеть эффект в действии, все, что вам нужно сделать, это удерживать нажатой правую кнопку мышки в окне предварительного просмотра Материала, а затем перемещать мышку вперед и назад. Когда вы уходите достаточно далеко от меши предварительного просмотра, вы должны увидеть переход Материала с одной Текстуры на другую. Если вы не видите этого, отрегулируйте первую Constant, которая подключена к выражению Divide Material Expression, в настоящее время установленному на 512, к чему-то меньшему, так как меньшие числа создадут эффект приближения к объекту.

Вывод

Детальное текстурирование – это очень мощный инструмент, который действительно поможет сделать ваши 3D-проекты ожившими. Однако, как и с каждым мощным инструментом, необходимо следить за тем, чтобы эта мощность была под контролем. Имейте в виду, что Detail Texturing может только скрыть пикселизацию к определенной точке. Такие вещи, как включение камеры с объективом для увеличения объектов, могут уменьшать любые преимущества, получаемые от Детализации Текстуры. Также помните, что добавление Детализации Текстуры может добавить к вашему Материалу два или более дополнительных средства поиска Текстур, которые могут представлять некоторые проблемы с производительностью / памятью, особенно на мобильных платформах.