Цветокоррекция

Материал из CSM Wiki
Перейти к навигации Перейти к поиску

Цветокоррекция — это принцип изменения цветового баланса изображения для достижения желаемого эффекта. В первую очередь она используется для придания карте определённой цветовой атмосферы и передачи важной информации.

  • Синими и серыми тонами достигается холодный эффект (зима, дождь, фильм Особое мнение).
  • Более яркие, насыщенные цвета, как красный или желтый будут иметь противоположный эффект (лето, солнце, фильм Герой).
  • С помощью коррекции можно имитировать эффекты иных сред (фильм Город грехов).

Цветокорреция в Source имеет полезную особенность изменяться прямо в процессе игры. Она может отражать состояние мира или игрока, может быть прикреплена к определённой местности или объекту.

Использование

Просмотровая таблица.

Source содержит профили цветокоррекции в просмотровой таблице они представляют из себя бинарные файлы размером 96Kb с расширением .raw. Для их создания используется набор инструментов в игре, они будут добавлены на карту вместе с color_correction (точечный) и color_correction_volume (брашевый).Коррекция проста и не занимает много ресурсов.

  Warning.png Внимание: Просмотровая таблица не хранит фильтры используемые для её создания, в ней содержится только результат настройки.

Использование коррекции:

  1. Добавте на карту хотябы один color_correction или color_correction_volume энтити цветокоррекции.
  2. Убедитесь что у вас включена Настройки Видео > Дополнительно > Коррекция гаммы (mat_colorcorrection 1).
  3. Если вы работаете в многопользовательском режиме установите квар sv_cheats 1.
  4. Введите в консоль colorcorrectionui.

В появившемя окне вы можете:

  • С помощью кнопок внизу создавать и управлять положением слоёв.
  • Включать или выключать их по нажатию на круглую иконку.
  • Контролировать степень интенсивности наложения слоёв, перемещая ползунов Blend.
  • Копировать слои Alt + Double-click.

Также существует окно 'Lookup View' с сеткой пикселей для предпросмотра эффекта.

Фильтры

Curves работает так же как кривая в любом графическом редакторе. Горизонтальная ось представляет значения цвета в исходном изображении, вертикальная ось — в финальном изображении.

  1. Bug.png Баг: Добавленные точки не могут быть удалены.
  2. Bug.png Баг: Перемещение и добавление новых точек может осуществляться только внутри графа. Это создает затруднения для размещения точек вблизи рамок графа.

Levels опять же, этот фильтр аналогичен инструменту "Уровни" в редакторе изображений. Оба слайдера контролируют цветовую гамму изображения: верхний слайдер устанавливает диапазон значений с помощью двух ползунков от черного (слева) до белого (справа), второй слайдер работает с данным диапазоном в своем масштабе — это позволяет более точно настроить цветовой баланс.

  1. Bug.png Баг: Ползунки установленные в одно значение могут "залипать".

Selected HSV это самый сложный фильтр. В миниатюре реального времени текущей сцены выделенные цвета подсвечиваются красным. Это можно сделать выбрав цвет в миниатюре или нажав кнопку Select прямо из сцены (Esc выключить). Удерживайте Ctrl что бы выделить несколько цветов.

Tolerance (допуск) и Fuzziness (размытость) позволяют более точно настроить выделение; Hue (тон), Saturation (насыщенность) и Value (яркость) — эффекты которые могут быть применены.

  1. Tip.png Совет: В меню содержится содержит много различных алгоритмов, но не во всех необходимо выделение цвета.
  2. Bug.png Баг: Возможны ситуации которые могут привести к блокировке миниатюры предпросмотра, единственный выход — рестарт.

Lookup позволяет загружать готовые профили. Balance настраивает яркость каналов.

Формат .RAW

Этот файл представляет из себя трехмерную матрицу размерности 32x32x32 хранящая значения RGB в которой одна запись равна 3 байт, первый байт соответствует значению красного. Значения RGB служат координатами выходного значения RGB. Каждое последующее значение R байта увеличивается на 4 (256 значений цвета, 32 позиции в матрице дают шаг 4). После достижения R 256, значение сбрасывается к 0, а байт G увеличивается на 4. То же самое происходит и с зеленым при достижении 256 значение сбрасывается, байт B увеличивается на 4. Индекс (EntryIndex) записи может быть вычислен там где R, G и B принимают целочисленные значения от 0 до 256.

//используется целочисленное деление, дробные части отбрасываются
int EntryIndex = (R / 4) + ((G / 4) + (B / 4) * 32) * 32

При использовани в игре значения из 32x32x32 интерполируются в 256x256x256 цветовое пространство. Статья взята с ValveDev.