Развертывание UVs для Lightmaps в Unreal Engine 4

0
37
Развертывание UVs для Lightmaps в Unreal Engine 4

Создание Карт освещения

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

Важно помнить, что разрешение lightmap крошечное по сравнению с разрешением текстуры UV. Также важно понимать, что чем больше необходимо оптимизировать уровень, тем меньше дизайнеры уровня будут поворачивать разрешение карт освещения вниз, даже до 8 х 8 или 16 х 16 в случае меньших объектов. Эта тенденция требует того, чтобы мы оставляли много «отступов» вокруг каждой части карты освещения UV так, чтобы темные области не просачивались в светлые области и не разрушали иллюзию теней точности в игре.

Существует 3 метода создания карт освещения:

BOX UNWRAP (развертывание бокса)
Часто это самый надежный метод разворачивания карт освещения, поскольку большинство моделей окружения представляют собой формы блоков, которые объединены или повторяются для создания структуры. Непрерывная меш (все, что не связано с отдельными элементами) часто является очень хорошим способом построения, чтобы обеспечить более эффективную раскрутку карт освещения, потому что вы можете просто сложить большую часть конструкции, соединенной вместе.
PLANAR UNWRAP (развертывание плоскости)
Это наиболее подходящий метод для простых плоских конструкций, таких как стены с несколькими скосами или экструзией (вытеснение). Это также необходимо для больших фасадов зданий, таких как многоквартирные дома. Разворачивающимся плоскостям в значительной степени помогает использование смежных мешей, потому что это больше вопрос смягчения UV меши и добавление покрытия вручную к скосам, которые не правильно освещены в игре.
CYLINDRICAL UNWRAP (цилиндрическое развертывание)
Большинство других форм в окружении разбиваются на варианты цилиндрической формы, если они не являются боксами или плоскими формами на плоскости. Цилиндрическая форма хорошо компенсирует многие конструкции, которые имеют стороны, а также переднюю, но не заднюю часть, иначе мы будем использовать метод Box Unwrap.

Примеры

пример развертывания UVs UE4Это была смежная меш, поэтому было легко развернуть коробку и просто сложить ее горизонтально, чтобы использовать максимально возможное разрешение lightmap. Нижние грани, выделенные средним изображением, были отколоты от целого, потому что они почти всегда оказываются черными, и если бы они были связаны с остальными UV, они бы пропускали темноту сквозь, где этого не должно быть.

Обратная сторона является верной для снятых верхних поверхностей, показанных на нижнем изображении, они всегда будут яркими. На верхнем изображении изображены UV текстуры.

пример развертывания UVs 2 UE4Этот метод подключения, позволяет нам безопасно, насколько это возможно, иметь почти идеальную карту освещения в игре при разрешении 32 х 32 юнита. Никаких швов нет, поэтому нет тонких темных линий, где их не должно быть.

собрать кусочки UVs вместе UE4Иногда вам нужно просто собрать кусочки вместе грубой силой. Для этого нужно иметь чистую поверхность без перерывов в карте освещения. Растяжение с отношением 1 х 1 действительно не имеет значения с lightmaps, так как покрытие делает так, что область является слишком тонкой, но соотношение 1 х 1 не будет правильно подсвечиваться из-за рассеивания, но соотношение от 1 до 7 с двойным охватом выглядит здорово. Здесь вы также можете увидеть, что я разделяю внутреннюю часть отрицательных сечений (секций), потому что они всегда будут темными, и нам нужно избегать протекания через внешнюю часть.

раздел внутренней части отрицательных сечений UE4С большими фасадными частями, такими, как эта Planar (плоскость), развертки хорошо работают. Эта меш смежная, что помогает здесь нашей работе, но тот же принцип работает и с мешами, которые имеют несколько вертикальных или горизонтальных элементов. До тех пор, пока вы помещаете вещи на светлую карту освещения UV в наиболее показательный макет, который низкополигональный, это будет работать так же, хотя с небольшим количеством заполнения в случае, если некоторые боковые секции становятся черными, когда они сложены вместе с другими частями.

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

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

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

В интерьерах в виде круговых рельс я разделил одну сторону саму по себе, а другую – на внутренние и внешние грани. Это было сделано так, чтобы на 3/4 этих участках было плавное затушевывание карты освещения и только один перерыв в этой карте с другой стороны, чего вы не видите из-за прямого металлического бруса сверху.

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

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

рассеивание освещения UE4Иногда легко проектировать вблизи плоскости и ослаблять UV’s, потому что есть четкие и определенные смежные секции, которые легко соединяются вместе, как в случае модели ниже.

Развертывание UVs для Lightmaps в Unreal Engine 4Эта конструкция, по существу, представляет собой только закрытый цилиндр с плоским основанием, поэтому я использую эти 2 основных метода для разворачивания UV’s. Зубчатую секцию у основания просто развернуть как плоскость вниз по оси Z, а затем применить релакс модификатор и немного изменить настройки, чтобы убедиться в том, что ничто не становится слишком маленьким благодаря небольшим проблемам с соотношением 1 к 1 на скосах.

Средняя часть была понятной, как основа, цилиндрическая развертка, которую я вручную заставил быть прямой, чтобы получить наибольшее освещение и использование пространства. Как всегда, нас больше интересует охват, чем от 1 до 1 представлений каждой маленькой грани низкополигональной меши. Я сделал развертку Плоскости вверх по оси Z для нижней части верхней секции львиной головы и последовал дальше, расслабившись.

Разделение модели, подобной этой, имело то преимущество, что она помещала швы на подлинные секции стыка в низкополигональный дизайн, поэтому естественно, что там есть небольшой перерыв в освещении. Разделение ваших uv’s карты освещения на участки, где есть острые углубления или щели, является хорошим правилом для выбора места для разделения секций таким образом, чтобы сделать внешний вид модели в игре лучше и понизить ее.

Разделение uv's карты освещения UE4Индекс координат карты освещения

По умолчанию первый набор UV(индекс 0) Статик Меши будет использоваться при создании карт освещения для статического освещения. Это означает, что тот же набор координат, который используется для применения материалов к меши, также будет использоваться для карт освещения. Довольно часто это бывает не идеально. Одна из причин этого заключается в том, что UVs, используемые для генерации карт освещения, должны быть уникальными, а это означает, что каждая грань меши не должна пересекаться ни с какой другой поверхностью внутри UV пространства.

Причина этого должна быть достаточно очевидной: если грани имеют одинаковое UV-пространство, то часть карты освещения, соответствующая этому пространству, будет применена к обеим граням. Она может быть большой для диффузных и других текстур, так как позволяет разрешение текстуры быть выше для каждой стороны. Однако это приведет к неточному освещению. Статик Меши имеют свойство LightmapCoordinateIndex, которое позволяет использовать определенный набор UVs-элементов для генерации lightmap. Установив это свойство, указывая на набор уникальных и правильно настроенных UVs, Static Meshes могут наслаждаться лучшим из обоих миров: лучшее разрешение текстуры для диффузных текстур и точное освещение из карт освещения.

Смежные UVs и Заполнение

Группы треугольников со смежными UVs называются UV charts (карты).

UV Chartsuvs карты UE4

1. UV карты

Для предотвращения артефактов пропускания необходимо заполнение между UV картами. Однако заполнение вокруг краев слоя Lightmap UV не требуется, поскольку Lightmass автоматически заполняет по краям достаточно для предотвращения артефактов пропускания. Обратите внимание, что когда вы настраиваете заполнение между UV картами, для предотвращения пропускания обычно требуется 4 текселя, так как сжатие DXT работает с блоками 4 x 4 текселя.

UV Padding uvs-padding-UE4
  1. Потраченное впустую UV заполнение
  2. Необходимое UV заполнение

Это означает, что для разрешения lightmap 32 заполнение между UV картами должно составлять 12,5 % от всего UV пространства. Тем не менее, имейте в виду, что размещение большего количества заполнений между UV картами приведет к тому, что больше памяти lightmap будет потрачено впустую при более высоких разрешениях lightmap. Чем более смежным вы можете сделать lightmap UVs для меши, тем лучше вы получите результат. Это уменьшит количество необходимых заполнений и позволит увеличить разрешение. До того, как Lightmass был реализован или в основном полагался на освещение вершин, меши могли быть созданы путем моделирования элементов отдельно и слияния их друг с другом.

Каждая деревянная доска является отдельным элементом, объединенным вместе

отдельная старая меш UE4Тем не менее, это немного хуже идеала, если полагаться на карты освещения и использовать Lightmass. Это не дает использовать хорошие смежные UVs карт освещения.

UVs Старой Меши

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

Старая Меш в игре

Старая Меш в игре UE4Лучший способ создания меши и размещения их UVs для карт освещения – это моделирование всей меши как одного непрерывного элемента и размещение UVs вручную.

Ремоделирование актива как непрерывного единственного элемента позволяет нам сделать карту освещения также смежной

Смежная карта освещения UE4Это приводит к смежным UVs карты освещения, которые уничтожают швы и способствуют эффективному световому отображению.

UVs Новой Меши

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

Новая Меш в игре

Новая Меш в игре UE4Дополнительным преимуществом этого метода является то, что он обычно еще и уменьшает количество трис, необходимых для модели.

Старая Меш UVs UE4Старая МешНовая Меш UVs UE4Новая Меш