Использование глобального освещения LightmapGI

Запечённые карты освещения (lightmaps) — это метод добавления непрямого (или полностью запечённого) освещения в сцену. В отличие от подходов VoxelGI и SDFGI, запечённые карты освещения хорошо работают на слабых ПК и мобильных устройствах, так как почти не потребляют ресурсов во время выполнения. Также, в отличие от VoxelGI и SDFGI, запечённые карты освещения можно использовать для сохранения прямого освещения, что даёт дополнительный прирост производительности.

В отличие от VoxelGI и SDFGI, запечённые карты освещения полностью статичны. После запекания их нельзя изменить. Они также не обеспечивают сцену отражениями, поэтому для достижения хорошего качества необходимо использовать Датчики отражения вместе с ними в интерьерах (или небо в экстерьерах).

As they are baked, they have fewer problems than VoxelGI and SDFGI regarding light bleeding, and indirect light will often look better. The downside is that baking lightmaps takes longer compared to baking VoxelGI. While baking VoxelGI can be done in a matter of seconds, baking lightmaps can take several minutes if not more. This can slow down iteration speed significantly, so it is recommended to bake lightmaps only when you actually need to see changes in lighting. Lightmaps are baked on the GPU, making light baking faster if you have a mid-range or high-end dedicated GPU.

Запекание lightmaps резервирует слот UV2 материалов, что делает его недоступным для других целей (как во встроенном Стандартный материал 3D и материал ORM 3D, так и в пользовательских шейдерах).

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

См. также

Не уверены, подходит ли вам LightmapGI? Смотрите Какую технику глобального освещения лучше использовать? для сравнения техник глобального освещения, доступных в Godot 4.

Визуальное сравнение

LightmapGI отключён.

LightmapGI отключён.

LightmapGI включён (запечён только непрямой свет).

LightmapGI включён (запечён только непрямой свет). Прямой свет остаётся в реальном времени, позволяя вносить тонкие изменения во время игры.

LightmapGI включён (запечён прямой и непрямой свет).

LightmapGI включён (запечён прямой и непрямой свет). Лучшая производительность, но визуальное качество ниже. Обратите внимание на более размытую тень от солнца в правом верхнем углу.

Сравнение LightmapGI и VoxelGI: lightmaps точнее, но страдают от ограничений развёртки текстур, что может ухудшать переходы и разрешение. VoxelGI менее точен (как аппроксимация), но даёт более плавный результат.

../../../_images/lightmap_gi_comparison.png

SDFGI также менее точен по сравнению с LightmapGI. Однако SDFGI может поддерживать большие открытые миры без необходимости запекания.

Настройка

Предупреждение

Получение lightmaps в веб-редакторах не поддерживается из-за ограничений графического API. На веб-платформе поддерживаются только rendering легкие карты, которые были выпечены на другой платформе.

Примечание

Узел LightmapGI запекает только узлы, находящиеся на том же уровне, что и сам узел LightmapGI (соседние узлы), или узлы, являющиеся дочерними для LightmapGI. Это позволяет использовать несколько узлов LightmapGI для независимого запекания разных частей сцены.

Прежде всего, до начала работы лайтмаппера, запекаемым объектам необходим слой UV2 и размер текстуры. Слой UV2 представляет собой набор вторичных текстурных координат, гарантирующий, что каждая грань объекта занимает уникальное место на UV-карте. Грани не должны совместно использовать пиксели в текстуре.

Есть несколько способов убедиться, что ваш объект имеет уникальный слой UV2 и размер текстуры:

Развёртка изнутри Годо

Предупреждение

Если эта операция меню Mesh используется на импортированной 3D-сцене, сгенерированные UV2 будут потеряны при перезагрузке сцены.

В Godot есть инструмент развёртки сеток и визуализации UV-каналов. Для использования: выберите MeshInstance3D и перейдите в меню Mesh над 3D-видом:

../../../_images/lightmap_gi_mesh_menu.webp

Эта функция генерирует UV2-координаты для запекания и автоматически устанавливает размер текстуры.

Развёртка в 3D-редакторе

Альтернативный вариант — выполнить развёртку в 3D-редакторе. Этот способ не рекомендуется, но существует для особых случаев. Основное преимущество — для сложных объектов, часто переимпортируемых, предварительная развёртка может быть быстрее, чем генерация в Godot.

Просто разверните второй слой UV2.

../../../_images/lightmap_gi_blender.webp

Затем импортируйте 3D-сцену в обычном режиме. Помните, что вам нужно будет установить размер текстуры на сетке после импорта.

../../../_images/lightmap_gi_lmsize.webp

При импорте внешних сеток их размер сохраняется. Учтите, что большинство инструментов развёртки в 3D-редакторах оптимизированы для скорости, а не качества. Для лучшего результата потребуется использовать швы и другие техники.

Генерация UV2 для примитивных сеток

Примечание

Эта опция доступна только для примитивных мешей, таких как BoxMesh, CylinderMesh, PlaneMesh, и т.д.

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

По умолчанию примитивные меши не имеют сгенерированных UV2 для экономии ресурсов (так как эти меши могут создаваться во время игры). Вы можете редактировать примитивный меш в инспекторе и включить Add UV2, чтобы движок процедурно сгенерировал UV2 для примитивного меша. Значение по умолчанию UV2 Padding настроено для предотвращения большинства случаев растекания световых карт без излишнего расхода места на краях. Если вы замечаете растекание световых карт только на конкретном примитивном меше, вам может потребоваться увеличить UV2 Padding.

Lightmap Size Hint представляет размер, занимаемый одним мешем на текстуре световой карты, который варьируется в зависимости от размеров меша и значения UV2 Padding. Lightmap Size Hint не следует изменять вручную, так как любые изменения будут потеряны при перезагрузке сцены.

Генерация UV2 для CSG-узлов

Начиная с Godot 4.4, вы можете конвертировать CSG-узел и его потомков в MeshInstance3D. Это можно использовать для запекания световых карт на CSG-узле, выполнив следующие шаги:

  • Выберите корневой CSG-узел и выберите CSG > Bake Mesh Instance в верхней части окна 3D-редактора.

  • Скройте корневой CSG-узел, который только что был запечён (он не скрывается автоматически).

  • Выберите вновь созданный узел MeshInstance3D и выберите Mesh > Unwrap UV2 for Lightmap/AO.

  • Запекаем lightmaps (световые карты).

Совет

Не забудьте оставить оригинальный CSG-узел в дереве сцены, чтобы вы могли вносить изменения в геометрию позже при необходимости. Для внесения изменений в геометрию удалите узел MeshInstance3D и сделайте корневой CSG-узел снова видимым.

Проверка UV2

В меню Mesh можно визуализировать UV2-координаты. При проблемах убедитесь, что все сетки имеют UV2:

../../../_images/lightmap_gi_uvchannel.webp

Настраиваем сцену

Для начала добавьте узел LightmapGI в сцену. Это включит запекание для всех узлов (включая вложенные сцены) в этой сцене.

../../../_images/lightmap_gi_scene.webp

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

Настройка мешей

Для участия в запекании у MeshInstance3D должен быть Bake Mode = Static. Режимы Disabled или Dynamic игнорируются.

../../../_images/lightmap_gi_use.webp

При автоматической генерации карт освещения при импорте сцены этот параметр включается автоматически.

Настройка освещения

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

Свет может быть отключен (без запекания) или полностью запечён (прямой и не прямой). Этим можно управлять из меню Bake Mode в источниках освещения:

../../../_images/lightmap_gi_bake_mode.webp

Основные режимы:

Отключённый (DIsabled)

Источник света игнорируется при запекании карт освещения (lightmaps). Этот режим следует использовать для динамических световых эффектов, таких как взрывы и эффекты оружия.

Предупреждение

Скрытие источника света не влияет на результат запекания световых карт. Это означает, что вы должны использовать режим запекания Disabled вместо скрытия узла Light путём отключения его свойства Visible.

Динамичный (Dynamic)

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

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

В зависимости от значения Shadowmask Mode, для DirectionalLight3D всё ещё можно получить запечённые тени на расстоянии. Это позволяет теням вблизи быть в реальном времени и отображать динамические объекты, в то время как статичные объекты вдали всё ещё могут отбрасывать тени.

Статичный (Static)

Запекается как непрямое, так и прямое освещение. Поскольку статические поверхности могут полностью пропустить вычисления освещения и теней, этот режим обеспечивает максимальную производительность и плавные тени без затухания. Свет в реальном времени больше не влияет на запечённые поверхности, но продолжает воздействовать на динамические объекты. При использовании режима запекания All динамические объекты не отбрасывают тени в реальном времени на запечённые поверхности. Используйте альтернативные методы, например blob-тени (реализуются через узел Decal).

Параметры источника света нельзя изменять во время выполнения. Перемещение света или изменение его цвета/энергии не влияет на статические поверхности.

Поскольку режимы запекания настраиваются индивидуально для каждого источника, возможны гибридные схемы. Распространённый вариант: DirectionalLight в режиме Dynamic, а OmniLight/SpotLight — в режиме Static. Это обеспечивает хорошую производительность с сохранением теней от динамических объектов на открытых пространствах.

Полностью запечённые источники света также могут использовать свойства Size (всенаправленный/прожектор) или Angular Distance (направленный). Это позволяет создавать тени с реалистичной полутенью, которая увеличивается по мере увеличения расстояния между источником тени и самой тенью. Это также имеет меньшую производительную стоимость по сравнению с тенями PCSS в реальном времени, так как только динамические объекты имеют рендерящиеся в реальном времени тени.

../../../_images/lightmap_gi_omnilight_size.png

Запекание (Baking)

Чтобы начать процесс запекания, просто нажмите кнопку Запекать карты освещения вверху при выборе узла LightmapGI:

../../../_images/lightmap_gi_bake.webp

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

Предупреждение

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

Чтобы избежать вылетов, убедитесь, что размер текселя световой карты в панели импорта установлен на достаточно высокое значение.

Tweaks (надстройки)

  • Качество (Quality): Доступны четыре уровня: Low (Низкий), Medium (Средний), High (Высокий) и Ultra (Ультра). Более высокое качество требует больше времени, но уменьшает шум на карте освещения. Различия особенно заметны для излучающих материалов и слабо освещённых зон. Каждый режим настраивается в Параметрах проекта.

  • Supersampling: создаёт карту освещения с более высоким разрешением, а затем снижает её разрешение. Это уменьшает шум и утечку света, а также улучшает тени с мелкими деталями. Однако его использование увеличивает время запекания и потребление памяти при запекании карты освещения. Supersampling Factor изменяет размер карты освещения, в котором она визуализируется перед понижением разрешения.

  • Bounces: Количество отражений, используемое для непрямого освещения. Значение по умолчанию (3) является хорошим компромиссом между временем выпекания и качеством. При более высоких значениях свет отражается большее количество раз, прежде чем остановиться, что делает непрямое освещение более плавным (но, возможно, и более ярким, в зависимости от материалов и геометрии).

  • Bounce Indirect Energy: Глобальный множитель, используемый при запекании непрямой энергии источников света. Он умножает значение Indirect Energy каждого источника света. Значения, отличные от 1.0, не являются физически точными, но могут использоваться для художественного эффекта.

  • Directional: Если включено, сохраняет направленную информацию для световых карт. Это улучшает внешний вид материалов с нормалмапами на запечённых поверхностях, особенно с полностью запечёнными источниками света (поскольку у них также запечён прямой свет). Недостатком является то, что направленные световые карты немного дороже в рендеринге. Они также требуют больше времени для запекания и приводят к увеличению размеров файлов.

  • Shadowmask Mode: Если установлено значение, отличное от None, тени первого DirectionalLight3D в сцене с режимом глобального освещения Dynamic будут запечены в отдельную текстуру, называемую shadowmask. Это позволяет удалённым статичным объектам отбрасывать тени на другие статические объекты независимо от расстояния до камеры. Подробнее см. в разделе о shadowmasking.

  • Interior: Если включено, освещение окружения не будет учитываться. Используйте это для чисто внутренних сцен, чтобы избежать утечек света.

  • Use Texture for Bounces: Если включено, будет генерироваться текстура с информацией об освещении для ускорения создания непрямого освещения ценой некоторой потери точности. Геометрия может демонстрировать дополнительные артефакты утечек света при использовании световых карт низкого разрешения или UV, значительно растягивающих световую карту по поверхностям. Оставьте включённым, если не уверены.

  • Использовать шумоподавитель: Если включено, применяет алгоритм шумоподавления для значительного уменьшения шума в карте освещения. Это увеличивает время запекания и иногда может вызывать артефакты, но результат обычно стоит затрат. Подробнее см. Шумоподавление.

  • Denoiser Strength: Сильность шага шумоподавления, применяемого к сгенерированным световым картам. Более высокие значения эффективнее удаляют шум, но могут снижать детализацию теней для статических теней. Эффективно только при включённом шумоподавлении и методе JNLMOIDN нет настройки силы шумоподавления).

  • Bias: Значение смещения для теней в единицах 3D. Обычно не требуется изменять это значение, за исключением случаев возникновения артефактов просачивания света (light bleeding) или тёмных пятен в карте освещения после запекания. Данная настройка не влияет на тени в реальном времени, отбрасываемые на запечённые поверхности (для источников света с режимом запекания Dynamic).

  • Max Texture Size: Максимальный размер текстуры для генерируемого атласа текстур. Более высокие значения приведут к созданию меньшего количества срезов, но могут не работать на всём оборудовании из-за ограничений на размеры текстур. Оставьте значение по умолчанию 16384, если не уверены.

  • Environment > Mode: Управляет тем, как учитывается освещение окружения при запекании световых карт. Значение по умолчанию Scene подходит для уровней с видимыми внешними частями. Для чисто внутренних сцен установите Disabled, чтобы избежать утечек света и ускорить запекание. Также можно установить Custom Sky или Custom Color для использования освещения окружения, отличающегося от фактического неба сцены.

  • Gen Probes > Subdiv: См. Динамические объекты.

  • Data > Light Data: См. Данные световых карт.

Использование shadowmasking для удалённых направленных теней

При использовании DirectionalLight3D максимальное расстояние, на котором он может отрисовывать тени в реальном времени, ограничено его свойством Shadow Max Distance. Это может быть проблемой в больших сценах, так как удалённые объекты не будут иметь теней от DirectionalLight3D. Хотя это можно решить с помощью режима глобального освещения Static для DirectionalLight3D, у этого есть несколько недостатков:

  • Поскольку запечены и прямой, и непрямой свет, динамические объекты не могут отбрасывать тени на статические поверхности реалистичным образом. Godot полностью пропускает сэмплирование теней в этом случае, чтобы избежать артефактов "двойного освещения".

  • Статические тени вблизи не имеют детализации, поскольку они полагаются только на текстуру световой карты, а не на каскады теней в реальном времени.

Мы можем избежать этих недостатков, сохраняя преимущества удалённых теней с помощью shadowmasking. Хотя динамические объекты не будут получать тени от shadowmask, это всё равно значительно улучшает визуал, так как большинство сцен в основном состоят из статических объектов.

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

Shadowmasking влияет только на первый DirectionalLight3D в сцене (определяется порядком в дереве) с режимом глобального освещения Dynamic. Невозможно использовать shadowmasking с режимом Static, так как этот режим полностью пропускает сэмплирование теней на статических объектах. Это происходит потому, что режим Static запекает и прямой, и непрямой свет.

Доступны три режима теневой маски (shadowmasking):

  • None (по умолчанию): Не запекать текстуру shadowmask. Направленные тени не будут видны за пределами диапазона, заданного свойством Shadow Max Distance DirectionalLight3D.

  • Replace: Запекает текстуру shadowmask и использует её для отрисовки направленных теней за пределами диапазона, заданного свойством Shadow Max Distance DirectionalLight3D. Тени в пределах этого диапазона остаются полностью в реальном времени. Этот вариант обычно наиболее логичен для большинства сцен, так как хорошо работает со статичными объектами, демонстрирующими тонкое движение (например, тени листвы).

  • Overlay: Запекает текстуру shadowmask и использует её для отрисовки направленных теней независимо от расстояния до камеры. Тени в пределах диапазона свойства Shadow Max Distance DirectionalLight3D будут накладываться поверх теней в реальном времени. Это может сделать переход между тенями в реальном времени и запечёнными менее резким, ценой эффекта "размазывания" на тенях статических объектов в зависимости от плотности текселей световой карты. Также этот режим хуже работает со статичными объектами, демонстрирующими тонкое движение (такими как листва), так как запечённые тени не могут анимироваться со временем. Тем не менее, для сцен, где камера движется быстро, это может быть лучшим выбором, чем Replace.

Визуальное сравнение режимов shadowmask в сцене, где Shadow Max Distance установлено очень низко для сравнения. Синие кубы — динамические объекты, остальная часть сцены — статичный объект. В сцене только один DirectionalLight3D с режимом глобального освещения Dynamic:

Сравнение режимов shadowmask

Сравнение режимов shadowmask

Примечание

Можно переключаться между режимами shadowmask Replace и Overlay без необходимости перезапекания световых карт.

Баланс между временем выпечки и качеством

Высококачественное запекание может занимать десятки минут для сложных сцен. Рекомендуется начинать с низких настроек качества. После завершения настройки освещения повысьте качество и выполните финальное запекание перед экспортом проекта.

Уменьшение разрешения световых карт путём увеличения Lightmap Texel Size на импортированных 3D-сценах также значительно ускорит запекание. Однако это потребует переимпорта всех 3D-сцен со световыми картами перед повторным запеканием.

Шумоподавление

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

Сравнение шумоподавления отключенного и включенного

Сравнение шумоподавления отключенного и включенного (с денойзером JNLM по умолчанию).

Для борьбы с шумом без чрезмерного увеличения времени запекания можно использовать денойзер. Денойзер — это алгоритм, который работает с финальной запечённой световой картой, обнаруживает паттерны шума и смягчает их, стараясь максимально сохранить детализацию. Godot предлагает два алгоритма шумоподавления:

JNLM (Нелокальные средства с совместной фильтрацией)

JNLM is the default denoising method and is included in Godot. It uses a simple but efficient denoising algorithm known as non-local means. JNLM runs on the GPU using a compute shader, and is compatible with any GPU that can run Godot 4's RenderingDevice-based renderers. No additional setup is required.

Шумоподавление JNLM можно настраивать с помощью свойства Denoiser Strength, которое видно при включённом Use Denoiser. Более высокие значения могут эффективнее удалять шум ценой подавления детализации теней для статических теней.

Сравнение значений силы шумоподавления JNLM

Сравнение значений силы шумоподавления JNLM. Более высокие значения могут уменьшать детализацию.

OIDN (Open Image Denoise)

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

OIDN может выполняться на GPU, если настроено аппаратное ускорение. С современным высокопроизводительным GPU это может дать ускорение более чем в 50 раз по сравнению с шумоподавлением на CPU:

  • На видеокартах от AMD необходимо установить и настроить HIP.

  • На видеокартах от NVIDIA необходимо установить и настроить CUDA. Это может быть автоматически выполнено установщиком NVIDIA, но в Linux библиотеки CUDA могут быть не установлены по умолчанию. Убедитесь, что пакеты CUDA из вашего дистрибутива Linux установлены.

  • На видеокартах от Intel необходимо установить и настроить SYCL.

Если аппаратное ускорение недоступно, OIDN вернётся к многопоточному шумоподавлению на CPU. Чтобы подтвердить, работает ли шумоподавление на GPU, используйте монитор загрузки GPU во время запекания световых карт и проверьте процент использования GPU и VRAM, когда в редакторе Godot отображается этап шумоподавления. Командная строка nvidia-smi может быть полезна для этого.

OIDN не входит в состав Godot из-за относительно большого размера загрузки. Вы можете скачать предварительно скомпилированные бинарные пакеты OIDN с его веб-сайта. Распакуйте пакет в любое место на вашем ПК, затем укажите путь к исполняемому файлу oidnDenoise в настройках редактора (FileSystem > Tools > OIDN > OIDN Denoise Path). Этот исполняемый файл находится в папке bin распакованного бинарного пакета.

После указания пути к исполняемому файлу OIDN измените метод шумоподавления в настройках проекта, установив Rendering > Lightmapping > Denoiser в OIDN. Это повлияет на все запекания световых карт в этом проекте после изменения настройки.

Примечание

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

Сравнение денойзеров JNLM и OIDN

Сравнение денойзеров JNLM и OIDN. Обратите внимание, как OIDN лучше сохраняет детализацию и уменьшает швы между разными объектами.

Динамические объекты

В отличие от VoxelGI и SDFGI, динамические объекты получают непрямое освещение иначе, чем статические объекты. Это происходит потому, что световые карты создаются только для статических объектов.

Для отображения непрямого освещения на динамических объектах используется система 3D-зондов, где световые зонды распределены по всей сцене. При запекании световых карт световой картограф вычисляет количество непрямого света, получаемого зондом. Прямой свет не сохраняется в световых зондах, даже для источников света с режимом запекания Static (поскольку динамические объекты продолжают освещаться в реальном времени).

Добавить световые зонды (light probes) в сцену можно двумя способами:

  • Автоматически: Установите Gen Probes > Subdiv в значение, отличное от Disabled, затем запеките световые карты. По умолчанию 8, но вы можете выбрать большее значение для повышения точности ценой увеличения времени запекания и размера выходного файла.

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

Примечание

После запекания световых карт вы увидите белые сферы в 3D-сцене, которые представляют, как запечённое освещение повлияет на динамические объекты. Эти сферы не появляются в работающем проекте.

Если вы хотите скрыть эти сферы в редакторе, переключите View > Gizmos > LightmapGI в верхней части 3D-редактора (значок "закрытый глаз" указывает на то, что гизмо скрыто).

Данные световых карт

Данные > Данные освещения (Light Data) в узле LightmapGI содержат данные карты освещения после запекания. Текстуры сохраняются на диск, но здесь также хранятся данные захвата (capture data) для динамических объектов, которые могут быть ресурсоёмкими. При использовании сцены в формате .tscn рекомендуется сохранять этот ресурс во внешний бинарный файл .lmbake, чтобы избежать раздутия (bloating) сцены Base64-кодированными данными.

Совет

Созданный EXR-файл можно просмотреть и даже отредактировать с помощью редактора изображений, чтобы при необходимости выполнить постобработку. Однако следует помнить, что изменения в EXR-файле будут потеряны при повторном запекании карт освещения.

Уменьшение артефактов LightmapGI

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