Unity 6.3
0 онлайн 25 гостей 3 в системе
Вход

Введение в линейное цветовое пространство в Unity

Работа в линейном цветовом пространстве дает более точное отображение, чем работа в гамма-цветовом пространстве.

Вы можете работать в линейном цветовом пространстве, если текстуры были созданы в линейном или гамма цветовом пространстве. Гамма цветового пространства Входы текстур в линейное цветовое пространство программы Shader поставляются в Shader с удаленной гамма-коррекцией.

Информацию о том, как установить цветовое пространство проекта, см. в Установка цветового пространства проекта.

Примечание: Окно Предварительный просмотр текстуры в Настройки импорта текстуры отображает текстуры с использованием гамма-смешивания, даже если вы работаете в линейном цветовом пространстве.

Линейные текстуры

Выбор Цветовое пространство: Линейный предполагает, что текстуры находятся в гамма цветовом пространстве. Unity использует ваш GPU’s sRGB Если текстуры созданы в линейном цветовом пространстве, то необходимо обойти этот параметр, так как он может привести к неправильному отображению текстуры. sRGB Для получения более подробной информации см. Отключить sRGB выборка для текстуры.

Гамма-текстуры

Переход от гамма цветового пространства к линейному цветовому пространству требует некоторых настроек. Более подробную информацию см. в Гамма текстуры в линейном цветовом пространстве.

Преобразование гамма в линейное

Для цветов это преобразование применяется косвенно, поскольку Unity Editor уже преобразует значения в числа с плавающей точкой, прежде чем передать их GPU в качестве констант. При выборке Текстур GPU автоматически удаляет гамма-коррекцию, преобразуя результат в линейное пространство.

Эти входные данные затем передаются в Shader, при этом расчеты освещенности происходят в линейном пространстве, как обычно. При записи полученного значения в framebuffer, оно либо сразу корректируется гамма-коррекцией, либо остается в линейном пространстве для последующей гамма-коррекции — это зависит от текущей конфигурации рендеринга. Например, в высоком динамическом диапазоне (HDR) результаты рендеринга остаются в линейном пространстве и корректируются гамма-коррекцией позже.