Unity 6.3
0 онлайн 104 гостей 3 в системе
Вход
Освещение Шаг 36 из 173

Введение в lightmaps и запекание

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

Слева: Простая сцена с картами освещения. Права: Текстура карт освещения, созданная Unity. Обратите внимание, как информация о тени и свете захватывается.
Слева: Простая сцена с картами освещения. Права: Текстура карт освещения, созданная Unity. Обратите внимание, как информация о тени и свете захватывается.

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

Данные, запеченные в lightmaps, не могут изменяться во время выполнения. Real-time lights могут быть наложены и использованы в качестве добавки к lightmapped сцене, но не могут интерактивно изменять lightmaps сами по себе.

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

Unity создает карты освещения с помощью Progressive Lightmapper.

Для получения рекомендаций по настройке lightmapper, см. Запекание освещения: с чего начать.

Структура карты освещения

Пример выпеченной карты освещения сцены, которая содержит сферу (вверху слева), цилиндр (слева) и куб (внизу справа), освещенные зелеными и желтыми светофорами Spot Lights.
Пример выпеченной карты освещения сцены, которая содержит сферу (вверху слева), цилиндр (слева) и куб (внизу справа), освещенные зелеными и желтыми светофорами Spot Lights.
  • A: Диаграмма UV. Отличная форма в lightmap, например, одна сторона куба. Каждая диаграмма UV имеет границу вокруг нее, которая отделяет ее от других диаграмм UV.
  • B: UV макет. Набор UV диаграмм для одной сетки, например, шесть граней куба. Каждый UV макет имеет прокладку вокруг него, чтобы отделить его от других UV макетов, которые Unity упаковывает в тот же UV атлас.

Прогрессивный Lightmapper

Прогрессивная Lightmapper — это быстрая система lightmapper, основанная на трассировании путей, которая обеспечивает запечённые карты освещения и световые зонды с прогрессивными обновлениями в Редакторе. Она требует неперекрывающихся UV карт с небольшими ошибками площади и угла, а также достаточного пространства между UV картами.

Progressive Lightmapper выполняет короткий шаг подготовки для обработки геометрии и обновлений экземпляров, а также генерирует G-буфер и маски диаграмм. Затем он немедленно производит выход и постепенно уточняет его со временем для значительно улучшенного интерактивного потока освещения. Кроме того, время запекания гораздо более предсказуемо, поскольку Progressive Lightmapper предоставляет оценочное время, пока оно выпечено.

Прогрессивный Lightmapper также запекает глобальное освещение (GI) в разрешении lightmap для каждого текселя индивидуально, без схемы upsampling или опираясь на любые кэши освещенности или другие глобальные структуры данных. Это делает его надежным и позволяет вам запекать выбранные части lightmaps, что делает его быстрее для вас, чтобы тестировать и итерировать на вашем Scene.

Подробное видео об интерактивном рабочем процессе см. в видеоруководстве Unity: В разработке — Progressive Lightmapper (YouTube).