Unity 6.3
0 онлайн 134 гостей 3 в системе
Вход
Материалы и шейдеры Шаг 427 из 442

Гамма-текстыли в линейном цветовом пространстве

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

Примечание: Если ваши Тексты находятся в линейном цветовом пространстве, вам нужно отключить sRGB выборку. См. документацию по Линейные текстуры для более подробной информации.

Линейное рендеринг дает другой вид рендируемой Scene. Когда вы создали проект, чтобы выглядеть хорошо при рендеринге в гамма пространстве, он вряд ли будет выглядеть хорошо, когда вы переключитесь на линейное рендеринг. Из-за этого, если вы переходите на линейное рендеринг из гамма рендеринга, может потребоваться некоторое время, чтобы настроить проект так, чтобы он выглядел так же хорошо, как и прежде. Однако, переключение в конечном итоге позволяет более последовательное и реалистичное рендеринг и поэтому может стоить времени, потраченного на это. Вы, вероятно, должны настроить Тексты, Материалов и Света.

Лайтмаппинг

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

Когда вы находитесь в линейном цветовом пространстве, образец текстуры преобразуется из гамма в линейное пространство при выборке текстуры. Когда вы находитесь в гамма цветовом пространстве, преобразование не требуется. Поэтому, когда вы изменяете настройки цветового пространства, вы должны переделать lightmaps: Это происходит автоматически, когда освещение Unity установлено на auto bake (что является по умолчанию).

Импорт светлых карт

Данные в файлах lightmap EXR, созданных Unity, находятся в линейном пространстве. При импорте они преобразуются в гамма пространство. При импорте lightmap из внешнего lightmapper, помечайте lightmap как Тип текстуры: Лайтмап в Импорт текстуры. Эта настройка гарантирует, что выборка sRGB будет обойдена при импорте.

Линейные платформы

Линейное отображение поддерживается не на всех платформах. Цели сборки, поддерживающие эту функцию, являются:

  • Windows, Mac OS X и Linux (автономный)
  • Android
  • iOS
  • Веб

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

На Android линейное отображение требует по крайней мере OpenGL ES 3.0 графики API и Android 4.3.

На iOS, линейное отображение требует Metal графики API.

В Интернете линейное отображение требует по крайней мере WebGL 2.0 графики API.

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

Unity Editor предотвращает построение Player для игр, которые будут отображаться неправильно
Unity Editor предотвращает построение Player для игр, которые будут отображаться неправильно

Линейное цветовое пространство и HDR

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

Линейное цветовое пространство иHDR

Когда линейное цветовое пространство включено и HDR не включено, используется специальный тип кадрового буфера, который поддерживает sRGB чтение и sRGB запись (преобразование из гаммы в линейную при чтении, преобразование из линейной в гамму при записи). Когда этот кадровый буфер используется для смешивания или связан как Текстура, значения преобразуются в линейное пространство до их использования. Когда эти буферы записываются, записываемое значение преобразуется из линейного пространства в гамма пространство. Если вы рендируете в линейном режиме и не в HDR режиме, все эффекты пост-процесса имеют свои исходные и целевые буферы, созданные с включенными sRGB чтением и записью, так что пост-процесс и смешивание после обработки происходят в линейном пространстве.