Проблемы с освещением и методы их решения в Unreal Engine 4

По правилам освещения, чёрные тени обычно используются, если у вас нет заполняющего света. Это часто происходит по тому, что окружающая среда имеет один направленный поток света, представленный как солнце. UE4 построен на методе, обеспечивающем эффективное заполнение светом окружающего мира называемым SkyLight. Немного про Skylight.

Проблемы с освещением и методы их решения в Unreal Engine 4
Без Skylight


Проблемы с освещением и методы их решения в Unreal Engine 4
С Skylight


Некорректные lightmap настройки при конвертировании BSP в Static Mesh



Когда вы сконвертируете свою BSP геометрию в static mesh , вы увидите данный результат:

Проблемы с освещением и методы их решения в Unreal Engine 4


Не беспокойтесь, это нормально. Так как мы только что сконвертировали наш BSP в static mesh, мы должны убедится в правильности назначенного канала для lightmap. Для того чтобы это было делать проще, lightmap автоматически генерируется когда вы конвертируете BSP. Единственное что вам осталось сделать — это выбрать нужный канал и разрешение.

Для того что бы это сделать — откройте новосозданный static mesh. Найдите панель details, расположенную справа в Static Mesh Settings.

Тут вам надо установить Lightmap Resolution. Это может быть любое значение кратное двум (к примеру, 32, 64, 128, и тд.). Это будет разрешением вашей lightmap текстуры. Высокое значение разрешения lightmap даст лучший результат, но в то же время займёт больше памяти и времени просчёта.

Далее, установите Lightmap Coordinate Index в 1 (UE4 использует этот канал для lightmap по умолчанию). Это положение вашей lightmap UV где нет наложения/пересечения UV шелов.

Если вы хотите увидеть как ваша lightmap выглядит, вы можете кликнуть по кнопке для UV в тулбаре и выбрать UV Channel 1 из выпадающего списка.

Проблемы с освещением и методы их решения в Unreal Engine 4


А если мне не нужны lightmap'ы ?



Бывают моменты когда игра не нуждается в lightmaps, т.к. оптимизирована для использования лишь динамического освещения. Опция которая отключает lightmaps , расположена в world settings и проверяется пунктиком “Force No Precomputed Lighting”. Когда освещение перестроится — все ранее запечённые lightmaps будут удалены.

Есть 2 способа для отключения статического освещения:

Project Settings: отключение статического освещения
Menu > Edit > Project Settings

Перейдите в Rendering Tab > Lighting Tab

Снимите галочку с «Allow Static Lighting«

Для восстановления полной функциональности данной опции вам необходимо перезапустить редактор

Проблемы с освещением и методы их решения в Unreal Engine 4


Level Settings: отключение статического освещения
Откройте World Settings

Перейдите в Lightmass Tab

Снимите галочку с «Force No Precomputed Lighting«

Вам будет показано предупреждение, нажмите ОК

Заново просчитайте освещение для полного обнуления ранее запечённого освещения

Проблемы с освещением и методы их решения в Unreal Engine 4

Проблемы с освещением и методы их решения в Unreal Engine 4

Проблемы с освещением и методы их решения в Unreal Engine 4


Двухстороннее освещения для односторонней геометрии или почему мой свет проходит сквозь объект?



На данном изображении показан ассет, который был сделан в 3ds max: плоскость и трубу.

Проблемы с освещением и методы их решения в Unreal Engine 4


В редакторе всё выглядит отлично, но когда я импортирую это в ue4, часть геометрии пропадает.

Так что же происходит, ведь данное явление не является нормой?

На самом деле- это нормальное явление.Если смотреть на плоскость, то она рендерится как и положено, но вот её задняя часть, как и ближние (к камере -прим.ред.)полигоны трубы- не рендерятся.

Проблемы с освещением и методы их решения в Unreal Engine 4


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

В UE4 невидимые полигоны не рендерятся для сохранения производительности. Это не всегда необходимо для получения дополнительных полигонов или плоскостей для рендера, так как в противном случае будут дополнительные вызовы отрисовки (draw calls), которые могут вызвать снижение производительности. С несколькими инстансами это, возможно, не будет играть особой роли, но когда вы разрабатываете под определённую платформу или имеете лимит на draw calls — данную особенность стоит учитывать.

Проблемы с освещением и методы их решения в Unreal Engine 4


Для понимания почему мы можем видеть только одну сторону нашей геометрии, мы должны открыть нашу геометрию в редакторе геометрии и включить отображение нормалей. Мы увидим зелёные линии указывающие направление полигона(имеется ввиду, что зелёная линия (нормаль) направлена перпендикулярно плоскости полигона). На изображении снизу, мы видим, что линии идут в направлении центра геометрии. Это направление которое даёт возможность увидеть геометрию.

Совет: Вы можете проверить направление нормалей в редакторе ue4 дабы увидеть, где именно у вас проблема.

Проблемы с освещением и методы их решения в Unreal Engine 4


Итак, у нас некоторые объекты с невидимыми сторонами, всё то нам нужно сделать, дабы это исправить:

1. (ТОЛЬКО ДЛЯ СТАТИКИ) Двухстороннее освещение

Включить данную опцию в details panel для выделенного ассета в Level Viewport.

С данной включённой опцией когда свет построится, lightmass будут считать что освещение для геометрии запечено. Это будет давать тень, даже если мы не можем видеть её с такого ракурса. Это не работает для подвижных/динамических источников света, т.к. Unreal Engine 4 использует deffered рендер.

Проблемы с освещением и методы их решения в Unreal Engine 4
Details Panel ассета в Level Viewport


Проблемы с освещением и методы их решения в Unreal Engine 4
Итоговый результат


2. Создание двухстороннего материала
Откройте редактор материалов и слева в details panel выберите опцию “Two-sided”.

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

Данный метод может быть использован с Статическим/Стационарным/Подвижным освещением.Теперь материл рендерит плоскости, которые ранее не были видны.

Данный способ добавляет draw calls



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

Проблемы с освещением и методы их решения в Unreal Engine 4
Атрибуты материала details панелька


Проблемы с освещением и методы их решения в Unreal Engine 4
Финальный результат


Почему всё выглядит так, как будто я ничего не делал до этого или Масштабируемые настройки



Масштабируемые настройки располагаются в Settings > Engine Scalability опции на тулбаре.

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

Опция “Shadows” непосредственно влияет на дальность прорисовки всех динамических теней. Это верно когда используется “Movable” освещение или когда освещение ещё не запекалось для статического освещения, так как те используют динамические тени до тех пор, пока освещение не будет запечено в lightmaps.

Проблемы с освещением и методы их решения в Unreal Engine 4


Engine Scalability Settings

Изображения снизу демонстрируют тени на отдалении при разном качестве теней указанных в настройках.

Проблемы с освещением и методы их решения в Unreal Engine 4


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

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

Почему на источниках света появился красный Х ?



Стационарные источники света ограничены 4 пересекающимися источниками. Когда добавляется ещё и 5й, появляется красный «Х», являясь индикатором того, что ИС с малым радиусом будут переведены в динамические ИС. Это может привести к проблемам производительности, так как динамические ИС потребляют больше ресурсов для запекания теней.

Проблемы с освещением и методы их решения в Unreal Engine 4
Пересекающиеся стационарные источники света


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

Чтобы это исправить, нужно уменьшить количество ИС до четырёх или уменьшить радиус ИС которые пересекаются.

Если же у вас 3 ИС в сцене и появляется красный «Х», то убедитесь, что у вас на сцене нет других ИС с огромным радиусом. Часто это происходит по тому, что Directional light переключён в режим Stationary, измените этот параметр на Статический или Динамический, дабы исправить проблему.

Типовые ошибки при создании lightmap



Ключевым моментом от которого зависит качество ваших lightmap, как ни странно, является правильное создание этих самых lightmap, а именно корректное использование UV пространства. Когда шелы вашей UV развёртки накладываются друг на друга или выходят за пределы 0-1 UV пространства, то вам будет показано следующее предупреждение “Lightmap Overlapping by xx%”.

Ниже приведена ссылочка на подробный гайд о том, как правильно сделать lightmap’у. Крайне рекомендуется к прочтению, если вы впервые имеете дело с lightmap’ами или оные получаются у вас с артефактами.

Ключевые моменты про которые нельзя забывать при создании lightmap:

1. Никаких пересекающихся шелов в UV.

2. UV шелы не должны выходить за пределы 0-1 квадрата развёртки.

3. Flat-Mapping — не панацея и часто даёт артефакты на вашей lightmap’е.

4. Используйте максимум UV пространства.

5. Если у вас объекты больших размеров, целесообразнее будет разделить его на несколько объектов поменьше, чтобы разрешение lightmap’ы было адекватное, ну и для лучшей производительности в лице Occlusion Culling.

6. Используйте наименьшее разрешение lightmap текстуры, чтобы не увеличивать загрузку ОЗУ в итоговом билде проекта, а заодно уменьшить время запекание самих lightmap.

7. Создавая UV развёртку для lightmap под нужное вам разрешение, не забывайте, что расстояние между UV шелами должно быть не менее 2рх, дабы не допустить артефактов (light bleed).

Мощь Post Process Global Illumination



Post Process Volume (далее PPV) может стать ультимативным инструментом в вашей сцене, когда дело касается освещения, особенно областей со статическим освещением. Post Process Settings позволяют легко и непринуждённо выставлять нужные параметры.

В приведённом ниже примере всё управляется посредством emissive материала цилиндрика, одним слабым источником света в комнате, и двумя пересекающимися PPV. Это довольно дешёвый способ для имитации динамического глобального освещения с использованием PPV

Проблемы с освещением и методы их решения в Unreal Engine 4
GI Post Process настройки


Делаем то что на гифке ниже:
1. Тусклый источник света для номинального мягкого освещения в комнате.
2. На перемещающийся цилиндрик назначен простой emissive материал, с параметром регулирующим яркость оного.
3. Первый PPV нужен для окружающего пространства, на случай если нужно будет переопределить какие-либо глобальные параметры.
4. Второй PPV прикреплён к цилиндрику, имеет больший чем цилиндр размер; для более плавной работы PPV было скорректировано 3 параметра:
— Indirect Lighting Color имеет тот же цвет что и цилиндр, но немного ярче.
— Indirect Lighting Intensity настроен таким образом, что придаёт ощущение, будто цилиндрик освещает комнату.
— Post Process Volume’s Blend Radius настроен таким образом, чтобы при пересечении этих двух PPV, влияние обоих плавно смешивалось.

Проблемы с освещением и методы их решения в Unreal Engine 4


Всё это управляется посредством PPV и статического освещения! Способность контролировать запекание GI может дать больше контроля если вам нужно сделать разные варианты освещения и оградить от необходимости полагаться сугубо на запекания освещения для полного соответствия.

Capsule Shadows

Капсульные тени были добавлены в 4.11 версии и позволяют скелетал мешам органично вписываться в сцены с непрямым освещением и в сцены с прямым освещением но с мягкими тенями.

Материал размещённый по ссылке ниже раскроет данную тему.

Рекомендуем посмотреть
  • Уменьшаем размер APK файла в Unreal Engine 4 Независимо от типа Android устройства, на которое нацелен ваш проект на UE4, уменьшение размера пакета Android приложения (APK) до уровня в 50 МБ для магазина Google
  • Что нужно учесть в проекте освещения дома? С помощью правильного освещения дома, можно превратить его, как в романтическое место с мягким светом, так и покрыть его агрессивной атмосферой настоящей операционной, разместив ослепительное
  • Выбор кухонного освещения Освещение и его выбор на кухне является наиболее важной частью оформления всей комнаты. Оно создаёт уют, атмосферу, благоприятную для общения всей семьи. Выбор и расстановка светильников является
  • Освещение на кухне Для того чтобы сделать кухню современной, придать ей эстетичный вид и обозначить границы помещения, применяют керамическую плитку, ламинат, моющиеся обои, настенные плиты МДФ и навесной ПВХ – потолок.
  • Как устроить освещение в магазинах одежды Одно из основных факторов в успешных розничных продажах является свет. Очень важной составляющей для обеспечения покупателям комфортной обстановки становится освещение, которое при правильном