Цветокоррекция: различия между версиями
DoBeRMaN (обсуждение | вклад) |
DoBeRMaN (обсуждение | вклад) |
||
Строка 43: | Строка 43: | ||
<source lang=cpp> | <source lang=cpp> | ||
− | int EntryIndex = (R | + | //используется целочисленное деление, дробные части отбрасываются |
+ | int EntryIndex = (R / 4) + ((G / 4) + (B / 4) * 32) * 32 | ||
</source> | </source> | ||
+ | При использовани в игре значения из 32x32x32 интерполируются в 256x256x256 цветовое пространство. | ||
Статья взята с [http://developer.valvesoftware.com/wiki/Color_correction ValveDev]. | Статья взята с [http://developer.valvesoftware.com/wiki/Color_correction ValveDev]. |
Версия 00:56, 30 апреля 2010
Цветокоррекция — это принцип изменения цветового баланса изображения для достижения желаемого эффекта. В первую очередь она используется для придания карте определённой цветовой атмосферы и передачи важной информации.
- Синими и серыми тонами достигается холодный эффект (зима, дождь, фильм Особое мнение).
- Более яркие, насыщенные цвета, как красный или желтый будут иметь противоположный эффект (лето, солнце, фильм Герой).
- С помощью коррекции можно имитировать эффекты иных сред (фильм Город грехов).
Цветокорреция в Source имеет полезную особенность изменяться прямо в процессе игры. Она может отражать состояние мира или игрока, может быть прикреплена к определённой местности или объекту.
Использование
Source содержит профили цветокоррекции в просмотровой таблице они представляют из себя бинарные файлы размером 96Kb с расширением .raw
. Для их создания используется набор инструментов в игре, они будут добавлены на карту вместе с color_correction (точечный) и color_correction_volume (брашевый).Коррекция проста и не занимает много ресурсов.
Внимание: Просмотровая таблица не хранит фильтры используемые для её создания, в них содержится только результат настройки.
Использование коррекции:
- Добавте на карту хотябы один color_correction или color_correction_volume энтити цветокоррекции.
- Убедитесь что у вас включена Настройки Видео > Дополнительно > Коррекция гаммы (mat_colorcorrection 1).
- Если вы работаете в многопользовательском режиме установите квар sv_cheats 1.
- Введите в консоль
colorcorrectionui
.
В появившемя окне вы можете:
- С помощью кнопок внизу создавать и управлять положением слоёв.
- Включать или выключать их по нажатию на круглую иконку.
- Контролировать степень интенсивности наложения слоёв, перемещая ползунов Blend.
- Копировать слои Alt + Double-click.
Также существует окно 'Lookup View' с сеткой пикселей для предпросмотра эффекта.
Фильтры
Curves работает так же как кривая в любом графическом редакторе. Горизонтальная ось представляет значения цвета в исходном изображении, вертикальная ось — в финальном изображении.
Levels опять же, этот фильтр аналогичен инструменту "Уровни" в редакторе изображений. Оба слайдера контролируют цветовую гамму изображения: верхний слайдер устанавливает диапазон значений с помощью двух ползунков от черного (слева) до белого (справа), второй слайдер работает с данным диапазоном в своем масштабе — это позволяет более точно настроить цветовой баланс. >>>The top slider's middle pip weights the image's range (i.e. adjusts gamma).
Selected HSV это самый сложный фильтр. В миниатюре реального времени текущей сцены выделенные цвета подсвечиваются красным. Это можно сделать выбрав цвет в миниатюре или нажав кнопку Select прямо из сцены (Esc выключить). Удерживайте Ctrl что бы выделить несколько цветов.
Tolerance (допуск) и Fuzziness (размытость) позволяют более точно настроить выделение; Hue (тон), Saturation (насыщенность) и Value (яркость) — эффекты которые могут быть применены. >>>Colorize causes the hue slider to replace instead of adjust.
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.