Unity хранит карты освещенияпредварительно обработанную текстуру, которая содержит эффекты источников света на статических объектах сцены. Карты освещения накладываются поверх геометрии сцены для создания эффекта освещения. Подробнее
См. в Словарь с различными схемами сжатия и кодирования, в зависимости от целевой платформы и настройки сжатия в окне освещения.
Схемы кодирования
В проектах Unity можно использовать два метода для кодирования запеченных диапазонов интенсивности света в текстуры с низким динамическим диапазоном, когда это необходимо:
Кодировка RGBM. Кодировка RGBM сохраняет цвет в каналах RGB и множитель (M) в альфа-канале. Диапазон карт освещения RGBM составляет от 0 до 34,49 (52,2) в линейном пространстве и от 0 до 5 в гамма-пространстве.
Кодирование с двойным низким динамическим диапазоном (dLDR). Кодирование dLDR используется на мобильных платформах путем простого сопоставления диапазона от [0, 2] до [0, 1]. Интенсивность запеченного света, превышающая значение 2, будет зафиксирована. Значение декодирования вычисляется путем умножения значения текстуры карты освещения на 2, если используется гамма-пространство, или на 4,59482(22,2), если используется линейное пространство. Некоторые платформы сохраняют карты освещения как dLDR, потому что их аппаратное сжатие создает некрасивые артефакты при использовании RGBM.
При использовании линейного цветового пространства текстура карты освещения помечается как sRGB, а окончательное значение используется шейдерамипрограммой. который работает на графическом процессоре. Подробнее
См. в Словарь (после выборки и декодирования) будет в линейном цветовом пространстве. При использовании цветового пространства «Гамма» окончательное значение будет в цветовом пространстве «Гамма».
Примечание. При использовании кодирования значения, хранящиеся в картах освещения (памяти текстур графического процессора), всегда находятся в цветовом пространстве гаммы.
Функция шейдера Decode Lightmap из включаемого файла шейдера UnityCG.cginc обрабатывает декодирование значений карты освещения после того, как значение считывается из текстуры карты освещения в шейдере.
Поддержка карты освещения HDR
Вы можете использовать карты освещения HDR в Windows, Mac, Linux, iOS, tvOS и Android. Чтобы управлять кодированием/сжатием карт освещения для этих платформ, перейдите в раздел Редактировать > Настройки проекта > Проигрыватель > Другие настройки > Кодирование карты освещения.
Выбор Высокое качество включает HDRрасширенный динамический диапазон
См. в Словарь поддержка карты освещения, тогда как Нормальное качество переключится на использование кодировки RGBM.
Низкое качество переключится на кодирование dLDR на мобильных платформах, на других платформах оно эквивалентно нормальному качеству.
Когда карта освещения СжатиеМетод хранения данных, уменьшающий объем требуемого места для хранения. См. Сжатие текстур, Сжатие анимации, Сжатие звука, Сжатие компоновки.
See in Словарь включен в окне освещения, карты освещения будут сжаты с использованием формат сжатия BC6H на настольных и консольных платформах. Для мобильных платформ Unity выбирает формат HDR в соответствии с таблицей ниже.
Преимущества карт освещения высокого качества (BC6H)
Карты освещения HDR не используют какую-либо схему кодирования для кодирования значений карты освещения, поэтому поддерживаемый диапазон ограничен только 16-битным текстурным форматом с плавающей запятойФормат файла для обработки текстур во время рендеринга в реальном времени аппаратным обеспечением для трехмерной графики, таким как видеокарта или мобильное устройство. Подробнее
ли>
См. в Словаре значение от 0 до 65504.Качество в формате BC6H выше, чем при кодировании в формате DXT5 + RGBM, и оно не создает никаких артефактов цветовых полос, характерных для кодирования RGBM.
Шейдеры, которым необходимо сэмплировать карты освещения HDR, на несколько инструкций ALU короче, потому что нет необходимости декодировать семплированные значения.
Формат BC6H имеет те же требования к памяти графического процессора, что и DXT5.
Вот список схем кодирования и их сжатие текстурОборудование для 3D-графики требует, чтобы текстуры были сжаты в специализированных форматах, оптимизирован для быстрой выборки текстур. Подробнее
См. в форматах Словарь для каждой целевой платформы:
Целевая платформа | Кодировка | Сжатие — размер (бит на пиксель) |
---|---|---|
Standalone(PC, Mac, Linux) | RGBM / HDR | DXT5 / BC6H - 8 bpp |
Xbox One | RGBM / HDR | DXT5 / BC6H - 8 bpp |
PlayStation4 | RGBM / HDR | DXT5 / BC6H - 8 bpp |
WebGLAPI JavaScript, который отображает 2D- и 3D-графику в веб-браузере. Вариант сборки Unity WebGL позволяет Unity публиковать контент в виде программ JavaScript, использующих технологии HTML5 и API рендеринга WebGL для запуска контента Unity в веб-браузере. More info See in Словарь 1.0 / 2.0 |
RGBM | DXT5 - 8 bpp |
iOSApple’s mobile operating system. More info See in Словарь |
dLDR / RGBM / HDR | PVRTC RGB - 4 bpp / ETC2 RGBA - 8 bpp / RGB9E5 - 32 bpp |
tvOS | dLDR / RGBM / HDR | ASTC - 3.56 bpp / ASTC - 3.56 bpp / RGB9E5 - 32 bpp |
Android* | dLDR / RGBM / HDR | ETC1 RGB - 4 bpp / ETC2 RGBA - 8 bpp / ASTC HDR - 3.56 bpp |
*Если целевым устройством является Android, вы можете переопределить формат сжатия текстур по умолчанию из Настройки сборки на один из следующих форматов: DXT1, PVRTC, ETC2, ASTC. . Формат по умолчанию: ETC для текстур RGB и ETC2 для текстур RGBA.
Предварительно рассчитанное глобальное освещение (GI) в реальном времени
Входные данные для системы GI имеют другой диапазон и кодировку для вывода. Альбедо поверхности представляет собой 8-битное целое число RGB без знака в гамма-пространстве, а излучение представляет собой 16-битное RGB с плавающей запятой в линейном пространстве. Рекомендации по предоставлению настраиваемых входных данных с помощью метапрохода см. в документации по сопоставлению освещения и шейдерам.
Выходная текстура освещенности сохраняется с использованием формата с плавающей запятой общего экспонента RGB9E5, если графическое оборудование поддерживает его, или RGBM с диапазоном 5 в качестве запасного варианта. Диапазон карт освещения RGB9E5 — [0, 65408]. Подробнее о формате RGB9E5 см. на Khronos.org: EXT_texture_shared_exponent. .
См. также:
- Переопределение модуля импорта текстур
- Типы текстур
- Глобальное освещениеГруппа методов, которые моделируют как прямое, так и непрямое освещение для обеспечения реалистичного освещения. Результаты. В Unity есть две системы глобального освещения, сочетающие прямое и непрямое освещение: запеченное глобальное освещение и глобальное освещение в реальном времени.
См. в Словарь - Типы текстур
- Запеченные карты освещения добавлены в Unity 2017.2
- Поддержка карты освещения HDR добавлена в Unity 2017.3
- Настройки кодирования карты освещения для мобильной платформы добавлены в Unity 2019.1