Новые способы применения глобального освещения в ваших мирах в Unity 6

Мы рады поделиться с вами подробностями о новых функциях освещения, которые появятся в Unity 6 в конце этого года.
Благодаря новой и надежной архитектуре запекания света и инновационному подходу к созданию освещенных сред с использованием адаптивных зондов (APV), вы сможете оптимизировать процесс создания света. Это значительно улучшит визуальные эффекты и обеспечит высокую производительность во время выполнения.
Если вы уже работали с предварительно вычисленными данными об освещении, вы знаете, насколько утомительным может быть этот процесс. Процесс предварительных вычислений для Lightmap может занять много времени: необходимо создать UV-изображения Lightmap, разместить зонды для корректного освещения динамических объектов, а также работать с большими текстурами, которые могут сильно нагрузить память приложения во время выполнения.
В Unity 6 мы добавили новый способ создания высококачественных окружений, освещенных световыми зондами, с помощью Adaptive Probe Volumes (APV), а также внесли фундаментальные улучшения в бэкенд light baking для повышения стабильности.
Adaptive Probe Volume - это группа световых зондов, которые Unity автоматически размещает в зависимости от плотности геометрии в сцене, чтобы создать искусственное непрямое освещение.

Благодаря своей адаптивной природе APV будет генерировать более плотно расположенные зонды в областях с большим количеством геометрии и меньше зондов в областях с менее плотным расположением объектов, например на заднем плане сцены.
Adaptive Probe Volumes также предоставляет вам полный набор мощных функций для создания прекрасно освещенных сред.
- Обеспечивает более простой рабочий процесс для размещения зондов и более быструю итерацию для непрямого диффузного освещения на основе световых зондов.
- Попиксельное освещение APV обеспечивает значительно более высокое качество по сравнению с Light Probe Groups и лучшую направленность по сравнению с Lightmaps, что приводит к превосходному общему качеству освещения.
- Легко интегрируется с атмосферными эффектами, делая такие эффекты, как объемный туман в HDRP и частицы VFX Graph в URP и HDRP, красиво освещенными непрямым освещением.
- Обеспечивает визуально потрясающий переход освещения с помощью Sky Occlusion и сценариев освещения, подходящих для создания временных интервалов и ситуаций включения/выключения света.
- Предоставляет больше контроля над оптимизацией производительности во время выполнения, основанной на использовании конвейера рендеринга и целевого оборудования.
- Запускает набор функций потоковой передачи данных, позволяя передавать данные светового зонда с диска на CPU и с CPU на GPU.
- Предоставляет мощный набор инструментов для уменьшения утечки света.

Проект URP 3D Sample в настоящее время использует последние возможности 2022 LTS .
Для демонстрации в этом блоге мы обновили сцены URP 3D Sample с 2022 LTS до Unity 6 Preview и функции Adaptive Probe Volumes.

APV - это система, основанная на объеме, которая автоматизирует размещение зондов вместо того, чтобы размещать их вручную.
На вкладке общих настроек APV можно управлять такими параметрами, как Minи Max Probe Spacing, чтобы создать несколько уровней подразбиения на основе окружающей геометрии. По умолчанию для плотных областей используется самое высокое разрешение, а для областей с меньшей геометрией - более низкое. Такое автоматическое и адаптивное поведение обеспечивает эффективное распределение ресурсов, направляя их в те области, где они наиболее необходимы.

Чтобы автоматически генерировать зонды, можно создать адаптивный зонд (Adaptive Probe Volume). Во время работы вы можете наблюдать за обновлениями в режиме реального времени, что позволит вам предварительно оценить расположение зондов без запекания. Эти обновления основаны на кирпичах и заданных ранее уровнях подразделения, которые затем корректируются в зависимости от близости соседних геометрических фигур.

Generate Lighting предварительно рассчитывает все данные об освещении, включая световые зонды, которые можно визуализировать в сцене. При предварительном просмотре с помощью кирпичей можно увидеть различные уровни деления, которые были применены при размещении зондов.

Если вы работали с данными светового зонда, то, возможно, знаете о распространенных проблемах, связанных с утечкой света. При разработке APV мы добавили целый набор инструментов для решения проблемы утечки света, таких как виртуальное смещение, расширение, корректирующие объемы Probe, слои рендеринга и режимы предотвращения утечки света "Производительность" и "Качество".
Вот пример. Используя отладочные представления освещения, мы можем наблюдать проблемный вариант использования утечки света. В такой ситуации яркий свет извне виден сквозь стены и землю здания. Снаружи наблюдается обратная проблема - темное освещение просачивается изнутри. Вероятно, это связано с низким разрешением (1 метр между зондами) и тонкими стенками. Давайте посмотрим, как мы можем решить эту проблему.

Чтобы исследовать эту проблему, опция Debug Probe Samplingпозволяет отобразить каждый из отобранных зондов вместе с их соответствующими весами. В нашем случае мы видим, что результат интерполируется между светлыми зондами снаружи и темными изнутри. В идеале внутри палатки должны находиться только внутренние зонды.

Rendering Layers for APV(добавлено в 6000.1f.1) позволяет создавать до четырех различных масок и ограничивать выборку определенными масками для определенных объектов. Это может быть невероятно полезно для предотвращения попадания внутренних объектов на внешние зонды и наоборот.
При создании освещения система автоматически назначает слои для зондов в процессе запекания на основе близлежащих объектов, что избавляет от необходимости вручную назначать слои для каждого зонда. После этого вы можете перейти по ссылкеGenerate Lighting и заметить, что утечка для палатки уменьшилась благодаря ручному созданию отдельных масок интерьера и экстерьера.

Для еще большего контроля над предотвращением утечки света вы можете использовать режимы Unity "Производительность" и "Качество" для уменьшения утечки .
Режим Performance Mode предназначен для снижения утечек путем смещения места отбора проб в сторону от недействительных зондов. Как правило, это хорошо работает в простых сценариях, когда можно определить подходящее место выборки для всех допустимых зондов и при этом обойти стороной все недопустимые. Однако в зависимости от конфигурации зонда такое оптимальное место отбора проб может быть недоступно. Это приводит к отбору проб недействительных зондов и потенциальным утечкам.
Режим качества (введен в версии 6000.0.3f1) теперь включен по умолчанию и использует до трех попыток выборки, чтобы гарантировать, что будут использованы только действительные зонды. Этот режим может немного повлиять на производительность во время выполнения, что может быть особенно заметно на младших платформах.
Вы можете комбинировать слои Leak Reduction и Rendering Layers, чтобы еще больше предотвратить утечку света. Этот режим позволяет гарантировать, что недействительные зонды, будь то из-за проблем с валидностью или нахождения на другом уровне, не попадут в выборку.

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

С помощью APV вы можете добиться визуально потрясающего перехода освещения с помощью Sky Occlusion и Lighting Scenarios, подходящих для создания ситуаций, связанных с временем суток и включением/выключением света.
Далее вы найдете два примера переходов освещения: сначала с помощью сценариев освещения с APV в сцене Oasis проекта URP 3D Sample, а затем с помощью Sky Occlusion с APV в сцене Garden.
APV облегчает различные сценарии освещения, позволяя переключаться или смешиваться между запеченными данными освещения. Эта функция особенно полезна для имитации времени суток или переключения между включенным и выключенным светом в рамках одной сцены или набора для выпечки.
Сценарии освещения управляют только запеченными данными светового зонда APV; остальные элементы необходимо обрабатывать вручную. Для примера в сцене Oasis мы создали скрипт для обновления неба, освещения, параметров тумана и зондов отражения. Сценариями запекания APV можно управлять во время выполнения с помощью API ProbeReferenceVolume, пример можно найти в документации.


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

Окклюзия неба использует дополнительные запеченные данные, чтобы по-разному управлять освещением неба, что отличается от стандартного запекания неба в APV. В этих данных хранится количество света, которое должна получить каждая область сцены, что позволяет во время выполнения корректировать цвет и интенсивность освещения неба. Использование динамического зонда окружения во время выполнения наряду с запеченными и статическими данными об окклюзии обеспечивает хорошую аппроксимацию освещения неба, позволяя динамически корректировать освещение сцены.
Окклюзия неба поддерживается как в URP, так и в HDRP. В HDRP датчик окружающей среды обновляется автоматически из HDRP Physical Sky. Однако в URP при использовании режима Skybox датчик окружающей среды не может автоматически обновляться в режиме реального времени по мере изменения состояния неба. Вместо этого необходимо вручную анимировать цвет с помощью режима "Градиент" или "Цвет", чтобы он соответствовал анимированным изображениям неба, поскольку Unity не будет автоматически подстраиваться под меняющийся цвет неба.
На примере сцены "Сад" режим "Градиент" в настройках "Окружающая среда" позволяет вручную анимировать цвет окружающего зонда. В паре с данными об окклюзии эта установка позволяет создать убедительное приближение для анимации рассеянного освещения неба, подходящее для изображения смены времени суток. При этом используется один запекатель без нескольких сценариев освещения, что позволяет получить широкий спектр цветовых вариаций.

Узнайте больше в нашей документации по реализации APV в Universal Render Pipeline (URP) и по APV в High Definition Render Pipeline (HDRP).
Новая архитектура Unity Light Baking Architecture появилась в Unity 6, а GPU Light Baker вышел из предварительной версии.

Новый легкий хлебопекарный прибор создан с учетом быстроты реакции редактора и скорости выпечки. Это означает, что при использовании запекания по требованию Unity теперь делает "снимок" состояния сцены при нажатии кнопки Generate. Unity больше не проверяет состояние сцены каждый кадр, что раньше снижало производительность редактора.
Переработанный бэкенд выпечки значительно упростил нашу кодовую базу, что позволило легче и быстрее исправлять ошибки и снизить риск появления новых.
Мы также предоставляем вам новый профиль выпечки, который позволит вам выбрать подходящую цель рабочего процесса.

Вы можете выбрать диапазон от "минимального использования памяти" - идеально, если вы хотите продолжать работать в редакторе и хотите получить максимальную общую отзывчивость редактора, - до "максимальной производительности", которая пригодится, если вы хотите выполнить работу как можно быстрее и не должны работать ни с чем другим в редакторе во время запекания.
Итеративное создание и устранение неполадок с запеченными данными освещения - важный пример для создателей, использующих запеченное глобальное освещение (GI).
По этой причине мы добавили новую функцию интерактивного предварительного просмотра в различные режимы рисования, связанные с GI, заменив автогенерацию Unity на специальный режим интерактивного предварительного просмотра отладки GI для предварительного просмотра данных об освещении.

Это позволяет интерактивно обновлять отладочные представления по мере изменения Сцены. Предварительный просмотр является неразрушающим, поскольку он не заменяет запеченные данные освещения.
Отказ от старой архитектуры автогенерации в Unity означает, что мы можем оптимизировать конвейер выпечки для большей стабильности.
Обратите внимание, что Unity 6 - это последний поддерживаемый релиз для Enlighten Realtime GI. Более подробную информацию о нашем ранее объявленном пути обесценивания вы можете найти в сообщении на форуме Update on Global Illumination 2021.
Вот ссылки на предыдущие запросы на отзывы для бета-версий 2023.1, 2023.2 и Unity 6 (2023.3) соответственно:
- Изменения в глобальном освещении в бета-версии 2023.1
- Изменения в глобальном освещении в бета-версии 2023.2
- Изменения в глобальном освещении в бета-версии Unity 6 (2023.3)
Мы с нетерпением ждем ваших творений, использующих наши новые возможности освещения в Unity 6. Пожалуйста, присылайте нам отзывы на форуме Global Illumination или в новом разделе обсуждений Unity!