Использование Масок Текстур в Unreal Engine 4

0
13
Использование Масок Текстур в Unreal Engine 4 UE4

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

Маски Текстуры

Mask Texture (Маска Текстуры) представляет собой текстуру в оттенках серого или один канал (R, G, B или A) текстуры, используемый для ограничения площади эффекта внутри Материала. Довольно часто маска будет содержаться в одном канале другой текстуры, такой как Альфа-канал карты Diffuse или Normal. Это хороший способ использовать неиспользуемые каналы и сохранить количество текстур, отбираемых в Материале до минимума. Технически любой канал любой текстуры можно рассматривать и использовать в качестве текстурной маски.

Вот пример того, как выглядит текстурная маска для Статик Меши SM_Chair из Starter Content.

текстурная маска для SM_Chair UE4Создание Текстурной Маски

Создание Маски Текстуры – это то, что может быть выполнено в любой программе 2D-обработки изображений. Чтобы добиться этого, все, что вам нужно сделать, это рисовать области, которые вы хотите маскировать, с белым цветом, оставив все остальные области черными. На следующем рисунке мы видим это в действии.

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

При создании Маски Текстуры вы всегда должны использовать либо черную, либо белую и никогда не цветную информацию. Использование любого другого типа цвета может привести к странным артефактам при использовании маски внутри UE4.

Экспорт Текстурной Маски

Когда вы закончите рисовать свою Маску Текстуры, вы можете либо экспортировать ее как одно изображение, либо вы можете объединить несколько масок в каналы R, G, B и A одного изображения и экспортировать их. Это обычно называют упаковкой RGB Маски и является предпочтительным методом при создании Mask Textures, поскольку он обеспечивает отличную производительность и экономию памяти при очень небольшой дополнительной работе.

Если вы упакуете что-то в Альфа-канал текстуры, убедитесь, что вы не забыли включить Альфа-экспорт в любое программное обеспечение для работы с 2D-изображениями, которое вы используете. Если нет, вы рискуете, что Альфа-канал не будет экспортироваться, когда будет экспортироваться текстура.

Использование Текстурных Масок

Маскированные Текстуры можно использовать несколькими способами в Редакторе Материалов UE4. Это может варьироваться от определения излучающего источника света до использования в качестве текстуры Roughness (резкости). В следующем разделе мы рассмотрим некоторые из наиболее распространенных способов использования маскировки Текстур в UE4.

Эмиссионная Маска

Одна из самых распространенных вещей, связанных с Маской Текстуры, – это использовать ее для управления Эмиссионными частями Материала. Обычно это делается путем создания текстуры Emissive Mask, которая использует белый, чтобы определить, какие части Материала должны быть эмиссионными, а затем умножить эту Маску текстуры на цвет внутри Редактора Материалов. Обычно это делается для того, чтобы вы больше контролировали внешний вид и интенсивность эффекта Emissive. В следующем примере мы можем увидеть Emissive Texture Masking в действии.

Эмиссионная Маска UE4В приведенном выше примере Маска Текстуры используется для определения того, какие части Материала должны быть эмиссионными. Цвет, который используется для эмиссий, происходит от умножения Маски Текстуры на векторный параметр Vector 3 Parameter. Интенсивность эмиссий контролируется скалярной величиной. Главным преимуществом использования маски Emissive таким образом является то, что всякий раз, когда вам нужно изменить что-то, относящееся к типу Emissive, все, что вам нужно сделать, это изменить параметры внутри Материала вместо обновления и повторного импорта Текстуры.

Маскировка Материалов

Другая наиболее распространенная вещь, связанная с Маской Текстуры, – хранить различные виды информации Текстуры в отдельных каналах R, G, B и Alpha. Прекрасный пример этого метода можно найти, посмотрев на Статик Меш SM_Chair, которая поставляется вместе с Starter Content.

Вы можете найти SM_Chair и весь контент, который идет с ним, сначала выбрав папку Starter Content в Контент Браузере, а затем введите «chair» в поле поиска. Это отобразит весь контент, относящийся к стулу. Если вы не видите стул, это, вероятно, означает, что вы не включили Starter Content в свой проект. Чтобы исправить это, вам нужно либо создать новый проект, либо попробовать инструмент Миграция активов, чтобы переместить контент стула из другого проекта в этот.

Открывая Материал стул (M_Chair), мы можем увидеть прекрасный пример отображения текстур в действии.

отображение текстур в действии UE4В этом материале Маска текстуры T_Chair_M используется для управления каждым аспектом того, как выглядит стул. Из чего должны быть его части – металла или неметалла, какого цвета они должны быть, и Маска Текстуры помогает определить все это. На следующем изображении вы можете увидеть разбивку того, как работает каждый канал Маски Текстуры для SM_Chair. С левой стороны – это то, что Маска выглядит как Текстура. Меньшие изображения, которые вы видите на правой стороне, показывают каждый из отдельных каналов и в какой области эти каналы будут влиять на стул Static Mesh.

каналы Маски Текстуры для SM_Chair UE4Вот разбивка того, какая информация хранится внутри каждого канала Mask texture стула.

  • Красный канал: информация об окружающей среде. В Материале это используется, чтобы помочь добавить некоторые изменения поверхности к базовому цвету.Красный канал маски текстуры UE4
  • Зеленый канал: Маска Metallic. В Материале это используется для того, чтобы определить, какие части должны быть металлическими. Это также помогает определить, какого цвета должен быть метал.Зеленый канал маски текстуры UE4
  • Синий канал: Non-Metallic Маска. В Материале это используется для определения того, какие части являются неметаллическими. Эта маска также помогает определить цвет неметаллических деталей.Синий канал маски текстуры UE4
  • Альфа-канал: Маска всего объекта. В настоящее время этот Материал не используется.

Когда все складывается, стул выглядит следующим образом на уровне UE4:

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

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

Маскирование Текстур и воспроизведение Экземпляра Материала

Использование Текстурной Маскировки и воспроизведение Экземпляра Материала вместе – отличный способ добавить почти бесконечное количество разнообразия в любые активы. Например, вы можете использовать Texture Mask, чтобы определить, какие области должны иметь определенные свойства, например цвет, а затем использовать разные Экземпляры Материалов для изменения каждого из этих свойств, предоставляя вам почти бесконечное множество вариантов.

разные Экземпляры Материалов ue4Например, если мы сделаем Экземпляр Материала из Материала SM_Chair, мы сможем затем отрегулировать цвет и другие значения, дающие нам почти бесконечное применение стульев, по-разному выглядящих, как на изображении выше.

Маскировка и Артефакты каналов

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

Будьте осторожны при попытке использовать Альфа-канал текстуры для хранения текстурных масок. Добавление Альфа-канала к текстуре значительно увеличит объем памяти этой текстуры, и если вы сделаете это достаточно, вы можете потерять все накопленные вами сбережения, упаковывая различные Текстурные Маски в каналы RGB текстур.

sRGB и Маска Текстуры 

При упаковке нескольких Масок Текстур в одну текстуру вы должны отключить sRGB, так как ваши маски не должны быть исправлены Гамма.

sRGB отключено UE4Однако, когда вы это делаете, вам необходимо убедиться, что вы настроили тип узла Экземпляра 2D Текстуры, поскольку ожидается, что текстуры, которые вы вводите, имеют разрешение sRGB. Если вы не измените тип образца Sampler Type, ваш материал не будет компилироваться, и в журнале статистики будет отображаться следующее сообщение.

материал не компилируется UE4Чтобы исправить эту ошибку, все, что вам нужно сделать, это изменить тип Sampler Type от Цвета по умолчанию до Линейного цвета, и предупреждение исчезнет. Однако, лучше перекомпилируйте Материал, чтобы убедиться, что изменения были приняты. После завершения предупреждение исчезнет, ​​и теперь Материал будет готов к использованию.

Вывод

Texture Masking – очень мощная концепция, которая после освоения позволит вам создать почти бесконечное количество вариаций с очень небольшим количеством исходного контента. Помните, что у вас есть только 4 доступных канала для использования с одной Маской Текстуры, поэтому используйте каналы с умом. Также не забудьте отключить sRGB в вашей Маске Текстуры, так как это может значительно увеличить резкость Маски.