Вычисление координат UV Lightmap в Unreal Engine 4

0
8
Вычисление координат UV Lightmap в Unreal Engine 4

Чтобы использовать статическое освещение (Lightmass) в UE4, вы должны вычислить набор развернутых UV-координат для модели. Это UV-отображение относится к lightmap для модели. Получение хорошей lightmap (световой карты) – это 50 % науки и 50 % искусства. Следующие шаги подробно расскажут о том, как перейти к вычислению UV lightmap в SpeedTree.

Статическое освещение Lightmass в UE4Модель lightmap и плотности изображена слева. Модель Lightmapped в UE4 – справа.

Шаг 1: Перейдите в режим рендеринга Lightmap Density

Используя кнопку панели инструментов Render, переключите режим рендеринга на Lightmap Density. На вашем дисплее должна изображаться такая картинка, как на рисунке ниже.

Режим рендеринга Lightmap DensityЭта визуализация показывает, насколько хорошо ваше разрешение lightmap распределено по вашей модели и предназначено для того, чтобы точно соответствовать одному и тому же режиму визуализации в UE4 (Show -> Lightmap density). Зеленые сечения модели представляют собой идеальную плотность. Синий означает, что разрешение lightmap слишком низкое и может показывать артефакты, когда lightmap построена в UE4. Красный означает, что разрешение lightmap слишком велико и впустую расходуется на эту геометрию.

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

Единицы модели влияют на визуализацию. Выберите генератор Tree (дерево) и отредактируйте Lightmap: Scale, чтобы масштабировать модель на то значение, которое вы желаете в UE4 при ее импорте. Значение по умолчанию здесь соответствует значению по умолчанию для импортера.
Вы можете изменить масштаб рендеринга карты освещения в вьюпорте, отредактировав соответствующее свойство в Window properties.

Шаг 2. Выберите Lightmap Resolution – разрешение

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

Установите целевое разрешение карты освещения, выбрав генератор Tree (дерево) и отредактировав свойство Lightmap: ResolutionВозможно такое, что модель бывает слишком сложной, чтобы соответствовать выбранному вами разрешению. Если это так, вы получите предупреждение в окне вывода, и разрешение будет сбито до наименьшего значения, которое даст каждому узлу в модели по крайней мере один тексель в карте освещения, сохранив одну границу текселя, необходимую для предотвращения артефактов рендеринга.

Шаг 3: Настройте Lightmap

После того, как вы выбрали разрешение, следующим шагом будет настройка того, как карта освещения распределяется по модели, чтобы убедиться, что ее части имеют наибольшую плотность. В общем, вам понадобится самая большая плотность в туловище, низких ветвях и корнях. Это область, наиболее часто встречающаяся игроком и наиболее склонная к очевидным артефактам, если плотность слишком низкая. Листья часто должны иметь сравнительно низкую плотность, чтобы соответствовать модели в достаточно малой световой карте.

Используйте комбинацию следующих инструментов для настройки распределения плотности карты освещения:

  • Reset (Сброс) – выберите Tools -> Reset lightmap (Инструменты -> Сбросить карту освещения), чтобы установить все скаляры lightmap на значение 1.0, кроме листьев. Они установлены на значение 0.0, так что каждый лист получает ровно один тексель и не более для начала (мы это сделаем позже).
  • Material Scales (Масштабы материала). Каждый материал имеет свойство, называемое шкалой Unwrap scale. Увеличьте или уменьшите это значение, чтобы изменить относительный размер каждой части геометрии, использующей этот материал.
  • Generator/Node Scales (Масштабы генератора/узла). Каждая комбинация генератора / узла, которая может содержать геометрию, обладает свойством Lightmap: Scale. Измените это значение, чтобы изменить размер пространства выбранного объекта в карте освещения. Кривую распределения на ветвях можно использовать для сдвига распределения пространства света на самом объекте (без изменения используемой области используемой области яркости). Эта кривая используется для противодействия факту, что плотность карты освещения ветви естественно увеличивается вблизи кончика, поскольку геометрия сужается, но использует одно и то же пространство текстуры.
  • Lightmap Resolution (Разрешение карты освещения). Если у вас не получается хорошо работать в выбранном вами разрешении, вам может понадобиться увеличить его, выбрав более высокое разрешение, как в шаге 2. Макет будет сильно изменен, поэтому вам может потребоваться сброс и начать сначала, если так произойдет.
Вы можете перейти в режим редактирования узлов и увеличить отдельные ветви, листья и ветви с листьями, чтобы справиться с особенно трудными областями.
Лучшая практика: Держите листья в значении ноль до тех пор, пока ветви не станут хорошими. Затем увеличьте листья, чтобы заполнить все пустое пространство.

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

Шаг 4: Выберите разрешение Lightmap Resolution в Unreal Engine 4

Когда вы импортируете модель в UE4, она будет иметь разрешение по умолчанию, равное 64, как и все Static Meshes. Выберите объект меши и введите разрешение Ligthmap (Details -> Static Mesh Settings -> Lightmap Resolution), которое вы использовали здесь. Когда вы создаете освещение в UE4, у вас должны получиться потрясающие результаты карты освещения в одном из самых сложных типов геометрии!