Улучшаем графику в играх на лету с помощью PowerStrip: яркость, контраст, гамму и цветовую температуру
реклама
реклама
В Anno 2070 настолько унылая, блеклая и серая гамма, что после яркой и сочной Anno 1800 просто неприятно смотреть. Настройки гаммы в игре совершенно не помогают.
реклама
Моя нервная система, сильно подорванная хейтерами в комментариях к моим блогам, мягко говоря, не справлялась с такой нагрузкой.
реклама
Этой опции, «Ansel flags for freestyle mode», там банально нет.
Перебрав несколько версий Nvidia Profile Inspector, я решил идти другим путем. И вспомнил про старинную программу PowerStrip, которая заменяла геймерам начала 2000-х годов MSI Afterburner и на равных боролась с RivaTuner.
К моему удивлению, одна из последних версий, аж 2012 года, запустилась на Windows 10.
К сожалению, аппаратный функционал программы остался на уровне начала 2000-х годов. А я его хорошо помню, так как повышал с помощью PowerStrip частоту своего 14″ монитора до приемлемых 85 Гц.
Увы, сейчас она уже совсем никак не пригодится для настройки ЖК-монитора.
В программе осталось еще немало «фич» тех древних лет, например, очистка памяти.
Но не ради этих функций нам нужна PowerStrip, поэтому переживать не стоит. Щелкнув правой кнопкой по значку программы в трее, нам откроется меню, в котором можно выбрать профили приложений, дисплея, цвета и производительности.
Профиль производительности тоже безнадежно устарел.
А вот профили приложений и цвета прекрасно работают. Именно ради них нам и нужна эта программа!
Начнем с профиля цвета.
В нем мы видим ползунки регулировки гаммы, яркости, контраста и температуры. Это именно то, что нам надо.
Действовать надо так, при запущенной игре отрегулировать по желанию яркость, гамму или контраст, добиваясь самой лучшей картинки. Некоторым играм придется включить режим «оконный, без рамки».
Затем сохраняем текущие установки в профиль (внизу).
Теперь нам нужен профиль приложений.
Выбираем «*.exe» файл нашей игры, добавляем к нему цветовой профиль, который мы сохранили ранее и ставим галочку «применять профиль при каждом запуске».
Все, теперь при запуске Anno 2070 у меня автоматически активируется цветовой профиль и игра становится более яркой, контрастной и со сдвигом в зеленую часть спектра.
Картинка заиграла новыми красками, даже здания, которые в игре очень похожи друг на друга, стали более легко различимы.
Теперь перейдем к They Are Billions. В ней я прибавил гаммы и сразу играть стало проще и приятнее на глаз. Даже мертвые деревья, которые сливались в одно темное пятно, стали детализированы и различимы.
Напишите, а как вы настраиваете цвета в играх? Какими программами?
Настройки «глобальных параметров» драйвера для видеокарт NVidia
Для каждого приложения данный параметр можно настроить отдельно (вкладка программные настройки), получив более высокое качество, если приложение не поддерживает или некорректно обрабатывает анизотропную фильтрацию.
Сглаживание прозрачных поверхностей означает, что объекты, не имеющие структуру, будут сглаживаться. Например, будет сглаживать «прозрачные» места в текстурах лестницы, ведь лестницы, например, рисуют единой текстурой, использую альфа-канал для указания прозрачных и не прозрачных мест. На производительность влияет не очень сильно, но если вам производительность все же важнее, можете поставить «Выкл».
В целом же, особой разницы в качестве картинки между ситуациями, когда эта опция включена или выключена, замечено не было.
Бессмысленный параметр, включение которого дает возможность при случае ошибки драйвера отправлять все данные о ошибке и конфигурацию ПК разработчикам NVidia.
(Один из бессмысленных параметров, выключение которого позволит сделать безлимитный доступ драйверу к коду приложения при обработке графики, естественно, все ограничения снимаем значением Off (Выкл))
Проще говоря, если выставлен режим Multi display performance mode (Режим многодисплейной производительности), то графический процессор (ГП) вашей видеокарты отрисовывает изображение для обоих портов видеокарты. А если выставлен режим Single display performance mode (Режим однодисплейной производительности), то сигнал будет идти только на один из портов.
Так что, если у вас одна видеокарта и один монитор, то ставьте в обязательном порядке Single display performance mode (Режим однодисплейной производительности).
Заметьте, что когда вы установили новые драйвера на видеокарту, по умолчанию стоит режим Multi display performance mode (Режим многодисплейной производительности) это означает, что, будь у вас два монитора, то, подключив его к второму видеовыходу, на него тоже бы шел рендеринг изображения. Теряется производительность где то на 5-15%. В общем режим Single display performance mode (Режим однодисплейной производительности) повышает производительность за счет рендеринга на один видеовыход). Увеличивает производительности в 3д приложениях.
Фильтрация текстур с использованием негатива с масштабируемым уровнем детализации, выставляем значение Clamp (Привязка), что позволит оптимизировать текстурные процедуры путем привязки. Это позволит получить дополнительные 2-3 ФПС в производительности рендеринга, без потери качества. Увеличивает производительности в 3д приложениях.
Фильтрация текстур, позволяет улучшить качество картинки, четкость изображения без понижения производительности в рендеринге, соответственно ставим значение Hight quality (Высокое качество). На производительность практически не влияет.
Тройная буферизация экрана, буферизирует несколько кадров при вертикальной синхронизации, что позволяет более плавно сгладить переход кадров, тем самым снижает производительность в 3д приложениях. Ставим значение Off (Выкл), тем самым отключая ненужную буферизацию. На производительность влияет негативно.
Вертикальная синхронизация кадров, через вертикальный синхроимпульс синхронизируется количество кадров в секунду с частотой обновления вашего монитора, тем самым убирая некий эффект «разрыва картинки» (на экране это будет выглядеть, например, при резком повороте камеры, будто верхняя часть экрана чуть уехала в сторону, по отношению к нижней), при быстрой смене кадров. При этом, зачастую сильно падает FPS (кол-во кадров в секунду), оно не столь значительно падает, только если у вас монитор обновляется с частотой выше 100-120 Гц в секунду, но даже при такой частоте все равно FPS снижается на 10-15%. Ставим значение Off (Выкл), тем самым отключая ненужную вертикальную синхронизацию. На производительность влияет негативно.
Learn OpenGL. Урок 5.2 — Гамма-коррекция
Гамма-коррекция
Итак, мы вычислили цвета всех пикселей сцены, самое время отобразить их на мониторе. На заре цифровой обработки изображений большинство мониторов имели электронно-лучевые трубки (ЭЛТ). Этот тип мониторов имел физическую особенность: повышение входного напряжение в два раза не означало двукратного увеличения яркости. Зависимость между входным напряжением и яркостью выражалась степенной функцией, с показателем примерно 2.2, также известным как гамма монитора.
Часть 1. Начало
Часть 2. Базовое освещение
Часть 3. Загрузка 3D-моделей
Часть 4. Продвинутые возможности OpenGL
Часть 5. Продвинутое освещение
Часть 6. PBR
Эта особенность мониторов (по случайному совпадению) очень напоминает то, как люди воспринимают яркость: с подобной же (но обратной) степенной зависимостью. Чтобы лучше это понять, взгляните на следующее изображение:
Верхняя строка показывает как воспринимается яркость человеческим глазом: при увеличении яркости в 2 раза (например, от 0.1 до 0.2) картинка действительно выглядит так, будто она в два раза ярче: изменения видны довольно отчетливо. Однако, когда мы говорим о физической яркости света, как, например, о количестве фотонов, выходящих из источника света, верную картину дает нижняя шкала. На ней удвоение значения дает правильную с физической точки зрения яркость, но поскольку наши глаза более восприимчивы к изменениям темных цветов, это кажется несколько странным.
Поскольку для человеческого глаза более привычен верхний вариант, мониторы и по сей день используют степенную зависимость при выводе цветов, так что исходные, в физическом смысле, значения яркости преобразуются в нелинейные значения яркости, изображенные на верхней шкале. В основном это сделано потому, что так выглядит лучше.
Эта особенность мониторов действительно делает картинку лучше для наших глаз, но когда дело доходит до рендеринга графики появляется одна проблема: все параметры цвета и яркости, которые мы устанавливаем в наших приложениях, основаны на том, что мы видим на мониторе. А это означает что все эти параметры на самом деле являются нелинейными. Взгляните на график:
Серая линия соответствует значениям цвета в линейном пространстве; сплошная красная линия представляет собой цветовое пространство отображаемое монитором. Когда мы хотим получить в 2 раза более яркий цвет в линейном пространстве, мы просто берем и удваиваем его значение. Например, возьмем цветовой вектор , то есть темно-красный цвет. Если бы мы удвоили его значение в линейном пространстве, он стал бы равным
. С другой стороны, при выводе на дисплей, он будет преобразован в цветовое пространство монитора как
, как видно из графика. Вот здесь и возникает проблема: удваивая темно-красный свет в линейном пространстве, мы фактически делаем его более чем в 4.5 раза ярче на мониторе!
До этого туториала мы предполагали, что работали в линейном пространстве, но на самом деле мы работали в цветовом пространстве, определяемом монитором, поэтому все установленные нами цвета и переменные освещения были физически не корректны, а всего лишь выглядели правильными конкретно на нашем мониторе. Руководствуясь данным предположением мы (и художники) обычно устанавливаем значения освещения ярче, чем они должны быть (т.к. монитор затемняет их), что в результате делает большинство последующих вычислений в линейном пространстве неверными. Также обратите внимание, что оба графика начинаются и заканчиваются в одних и тех же точках, затемнению на дисплее подвержены только промежуточные цвета.
Как я уже говорил, поскольку значения цветов выбраны на основании отображаемой монитором картинки, все промежуточные вычисления освещения, проводимые в линейном пространстве физически некорректны. Это становится все очевиднее, когда мы начинаем использовать более продвинутые алгоритмы освещения. Просто взгляните на изображение:
Как видно, цветовые значения (которые мы предварительно обновили) с использованием гамма-коррекции куда лучше сочетаются между собой, а темные области становятся светлее, что увеличивает их детализацию. Налицо гораздо лучшее качество изображения, при весьма незначительных модификациях.
Без должным образом настроенной гаммы монитора освещение выглядит неправильно, и художникам будет довольно трудно получить реалистичные и красивые результаты. Чтобы решить эту проблему необходимо применять гамма-коррекцию.
Гамма-коррекция
Идея гамма-коррекции заключается в том, чтобы применить инверсию гаммы монитора к окончательному цвету перед выводом на монитор. Снова посмотрим на график гамма-кривой в начале этого урока, обратив внимание на еще одну линию, обозначенную штрихами, которая является обратной для гамма-кривой монитора. Мы умножаем выводимые значения цветов в линейном пространстве на эту обратную гамма-кривую ( делаем их ярче), и как только они будут выведены на монитор, к ним применится гамма-кривая монитора, и результирующие цвета снова станут линейными. По сути мы делаем промежуточные цвета ярче, чтобы сбалансировать их затенение монитором.
Приведем еще один пример. Допустим, у нас опять есть темно-красный цвет . Перед отображением этого цвета на монитор мы сперва применяем кривую гамма-коррекции к его компонентам. Значения цвета в линейном пространстве, при отображении на мониторе, возводятся в степень, приблизительно равную 2.2, поэтому инверсия требует от нас возведения значений в степень 1 / 2.2. Таким образом, темно-красный цвет с гамма-коррекцией становится
=
=
. Затем этот скорректированные цвет выводится на монитор, и в результате он отображается как
=
. Как видите, когда мы используем гамма-коррекцию монитор отображает цвета, точно такими, какими мы задаем их в линейном пространстве в нашем приложении.
Гамма равная 2.2 это дефолтное значение, которое приблизительно выражает среднюю гамму большинства дисплеев. Цветовое пространство в результате применения этой гаммы называется цветовым пространством sRGB. Каждый монитор имеет свои собственные гамма-кривые, но значение 2.2 дает хорошие результаты на большинстве мониторов. Из-за этих небольших отличий многие игры позволяют игрокам изменять настройку гаммы.
Существует два способа применения гамма-коррекции к вашим сценам:
Первый вариант проще, но дает вам меньше контроля. Установив флаг GL_FRAMEBUFFER_SRGB, вы сообщаете OpenGL, что каждая следующая за этим команда рисования должна выполнить гамма-коррекцию в цветовое пространство sRGB, прежде чем записать данные в цветовой буфер. После включения GL_FRAMEBUFFER_SRGB OpenGL автоматически выполнит гамма-коррекцию после запуска каждого фрагментного шейдера для всех последующих кадровых буферов, включая дефолтный кадровый буфер.
Включение флага GL_FRAMEBUFFER_SRGB выполняется при помощи обычного вызова glEnable:
Теперь отрендеренные вами буферы цвета будут иметь скорректированную гамму и, поскольку это делается аппаратно это ничего нам не стоит. Единственное, о чем вы должны помнить при таком подходе (хотя и при другом подходе тоже), что гамма-коррекция преобразует цвета из линейного пространства в нелинейное, поэтому очень важно, чтобы вы выполняли гамма-коррекцию только на последнем, заключительном этапе. Если вы примените гамма-коррекцию до окончательного вывода, все последующие операции над этими цветами будут работать с неправильными значениями. Например, если вы используете несколько кадровых буферов, вы, вероятно, хотите, чтобы промежуточные результаты оставались в линейном пространстве и только последний буфер применял гамма-коррекцию перед отправкой на монитор.
Второй подход требует немного больше работы, но зато дает нам полный контроль над операциями с гаммой. Мы применяем гамма-коррекцию на соответствующем этапе фрагментного шейдера, так что к результирующим цветам применяется гамма-коррекция непосредственно перед отправкой на монитор:
Последняя строка кода возводит каждый компонент цвета fragColor в степень , корректируя результат работы данного шейдера.
Проблема этого подхода заключается в том, что вы должны применять гамма-коррекцию для каждого фрагментного шейдера, который вносит свой вклад в окончательный вывод, поэтому, если у вас есть дюжина фрагментных шейдеров для нескольких объектов, вам придется добавить код гамма-коррекции в каждый из них. Более разумным решением было бы добавить этап пост-обработки в ваш цикл рендеринга и применять гамма-коррекцию на финальном кваде в качестве последнего шага. Тогда вам нужно будет сделать это всего один раз.
Собственно, эти 2 строчки кода и представляют собой технические реализации гамма-коррекции. Не слишком впечатляет, правда? Подождите, есть еще пара нюансов, которые вы должны учитывать при гамма-коррекции.
sRGB текстуры
Всякий раз, когда вы рисуете или редактируете изображение на своем компьютере, вы выбираете цвета на основе того, что видите на мониторе. Фактически, это означает, что все созданные или редактируемые вами изображения находятся не в линейном пространстве, а в пространстве sRGB, то есть удвоение темно-красного цвета на экране, основанное на воспринимаемой вами яркости, на деле не равно удвоению красной составляющей цвета.
В результате, художники, рисующие текстуры, создают их в пространстве sRGB, и если мы используем эти текстуры в нашем приложении как они есть, мы должны учитывать это. До того как мы применили гамма-коррекцию это не создавало проблем, поскольку текстуры выглядели хорошо в пространстве sRGB, и без гамма-коррекции мы также работали в этом пространстве, так что текстуры отображались именно так, как задумано. Однако теперь, когда мы отображаем все в линейном пространстве, цвета текстуры передаются неверно, как видно на следующем изображении:
Текстура пересвечена, и это происходит потому, что гамма-коррекция, фактически, была применена к ней дважды! Посудите сами: когда мы создаем изображение на основе того, что видим на мониторе, мы корректируем гамму цветовых значений изображения, чтобы они выглядели верно на экране. Поскольку мы снова выполняем гамма-коррекцию при рендере, изображения становятся слишком яркими.
Чтобы решить эту проблему, мы должны убедиться, что художники, рисующие текстуры, работают в линейном пространстве. Однако, поскольку большинство художников даже не знают, что такое гамма-коррекция, и им проще работать в пространстве sRGB, это, скорее всего, не вариант.
Еще одно решение состоит в том, чтобы скорректировать или преобразовать эти sRGB-текстуры обратно в линейное пространство, прежде чем делать какие-либо манипуляции над их цветами. Мы можем сделать это следующим образом:
Тем не менее проделывать это для каждой текстуры в пространстве sRGB довольно хлопотно. К счастью, OpenGL дает нам еще одно решение наших проблем, предоставляя нам внутренние форматы текстур GL_SRGB и GL_SRGB_ALPHA.
Если мы создадим текстуру в OpenGL с любым из указанных двух текстурных форматов sRGB, OpenGL автоматически преобразует их цвета в линейное пространство, как только мы их используем, что позволит нам правильно работать в линейном пространстве со всеми извлеченными из текстуры значениями цвета. Мы можем объявить текстуру как sRGB следующим образом:
Если вы хотите использовать альфа-компонент в своей текстуре, вам нужно будет обозначить внутренний формат текстуры как GL_SRGB_ALPHA.
Вы должны быть осторожны при объявлении своих текстур как sRGB, поскольку не все текстуры будут находиться в пространстве sRGB. Текстуры, используемые для окраски объектов, такие как диффузные карты, почти всегда находятся в пространстве sRGB. Текстуры, используемые для извлечения параметров освещения, такие как бликовые карты и карты нормалей, наоборот, почти всегда находятся в линейном пространстве, поэтому, если вы объявите их как sRGB, освещение поедет. Будьте внимательны, при указании типов текстур.
Объявив наши диффузные текстуры как sRGB, вы снова получите ожидаемый результат, но на этот раз гамма-коррекцию достаточно применить всего 1 раз.
Затухание
Еще один момент, который будет иным при использовании гамма-коррекции — затухание освещения. В реальном физическом мире освещение затухает почти обратно пропорционально квадрату расстояния от источника света. На человеческом языке это означает, что сила света уменьшается при удалении от источника света, как показано ниже:
Однако при использовании этого уравнения эффект затухания слишком силен, и световое пятно получает небольшой радиус, что выглядит физически не слишком достоверно. Поэтому мы использовали другие уравнения для затухания (мы обсуждали это в туториале, посвященном основам освещения), которые дают больше возможностей настройки, или вообще линейный вариант:
Без гамма-коррекции линейный вариант дает гораздо более правдоподобные результаты, чем квадратичный, но когда мы включаем гамма-коррекцию, линейное затухание выглядит слишком слабым, и физически верное квадратичное неожиданно дает лучшие результаты. На рисунке ниже показаны различия между вариантами:
Причиной этого различия является то, что функции затухания света меняет яркость, и поскольку мы отображали нашу сцену не в линейном пространстве, мы выбрали функцию затухания, которая выглядела лучше всего на нашем мониторе, хоть и не была физически правильной. Когда мы использовали квадратичную функцию затухания без гамма-коррекции, фактически она превращалась в при отображении на мониторе, что давало гораздо больший эффект затухания. Это также объясняет, почему линейный вариант дает лучшие результаты без гамма-коррекции, ведь при нем
=
, что намного больше напоминает физически правильную зависимость.
Более продвинутая функция затухания, которую мы обсуждали в основах освещения, по-прежнему полезна и в сценах с гамма-коррекцией, поскольку она дает гораздо больший контроль для более точной реализации затухания (но, конечно, требует других параметров при использовании гамма-коррекции).
Я написал простую демо сцену, исходный код которой вы можете найти здесь. Нажимая клавишу пробел, вы можете переключаться между сценами с гамма-коррекцией и без, каждая из которых использует свои текстуры и функции затухания. Это не самая впечатляющая демонстрация, но она показывает, как применять данные техники.
Подведем итоги: гамма-коррекция позволяет вам работать с цветами в линейном пространстве. Поскольку физическому миру присуще линейное пространство, большинство физических вычислений будут давать лучшие результаты, например расчет затухания света. Использование гамма-коррекции позволяет гораздо легче достигать реалистичных результатов по мере усложнения применяемых техник освещения. Именно поэтому рекомендуется сразу же настроить параметры освещения для работы с гамма-коррекцией.
Компью А рт
Пыльский Александр
Изучая глубину,
кидают в нее камни.
Ежи Лец
Каждый из нас, включая монитор и рассматривая на нем изображения, обязательно сталкивается с понятием гаммы (к счастью, это не радиация). Это один из основных механизмов, отвечающий за точность цветопередачи на мониторе. Он несложен, но, как хорошо известно, говорить о простом всегда сложно. Для того чтобы немного облегчить задачу, материал изложен в виде набора простых вопросов неискушенного юзера (он бросает «камни»). Такая форма (Frequency Answered Question — FAQ) давно принята в профессиональной среде и, надеюсь, поможет всем нам раз и навсегда разобраться с тонкостями настройки.
Q1 Что такое гамма?
Answer: Гамма описывает, как воспроизводится яркостная компонента изображения — светимость. Это показатель степени в функции x=ygamma. Такую функцию называют степенной. Гамма есть в любых системах обработки графических данных. К примеру, в мониторе три канала RGB, и соответвенно — три гаммы. В цифровых системах гамма показывает отношения между значением кода (к примеру, для 8-битных систем от 0 до 255) — и яркостью (точнее Luminance — светимостью) изображения.
Q2 Гамма и гамма-коррекция — это одно и то же?
Answer: Строго говоря — нет. Они взаимосвязаны. Гамма — характеристика нелинейности. А гамма-коррекция — процесс, устраняющий эту нелинейность.
Q3 Почему все так сложно и запутано?
Answer: Вследствие слабого понимания разработчиками оборудования и ПО важности точного воспроизведения яркости (тона), а также в связи c низким уровнем развития технологий нелинейного кодирования в компьютерной графике и обработке изображения до сих пор не утвердился единый стандарт управления цветом (и тоном) изображений. В связи с этим мы должны учитывать различия в способах линеаризации (гамма-коррекции) изображений и различия в default-соглашениях о гамма, принятых на различных платформах (и/или операционных системах, и/или программах).
Q4 Можно ли обойтись без гамма-коррекции?
Answer: Да. Бытовой (аналоговый) телевизор, к примеру, успешно обходится. Однако при оцифровке изображения мы должны учитывать нелинейность человеческого восприятия. Иначе мы не получим нормальную точность. К примеру, вследствие ограниченности 8-разрядного кодирования при простой линейной оцифровке разница тона в пикселах со значениями 25 и 26 достигает 4% (рис. 1). Естественно, мы должны учесть это при оцифровке, применяя нелинейное кодирование. И в дальнейшем, во всех последующих преобразованиях, мы вынуждены учитывать эту нелинейность. Нормальную точность при линейном кодировании можно получить, применяя разрядность 11-14 бит.
Замечание. Как известно, при сжатии в формат JPEG происходит разделение изображения на две части: несущественная часть информации отбрасывается. Алгоритм выделения несущественной информации исходит из особенностей человеческого зрения и, как следствие, адекватно работает только с нелинейно оцифрованными изображениями.
Q5 Можно ли управлять гаммой?
Answer: Для управления цветом и тоном изображений наиболее удобно пользоваться системами CMS, присутствующими в операционной системе. При этом управление гаммой (и соответственно гамма-коррекция) происходит практически прозрачно, незаметно для пользователя. Однако наличие CMS в компьютере автоматически не подразумевает ее правильное использование. Для полноценного функционирования CMS необходимо точно охарактеризовать (профилировать) графическую систему специальными программами-профилировщиками, а в дальнейшем обязательно подключать имеющиеся профили ко всем изображениям, которые готовятся на графической системе. Кроме того, на всей длине цепочки по обработке изображений необходимо тщательно избегать «накопительной» гамма-коррекции.
Q6 Что такое калибровка монитора?
Answer: При калибровке видеосистемы важно определить три характеристики: цвет белого, гамма и phosphors (цвета люминофора) монитора.
Точное значение phosphors и цвет белого вам может дать только аппаратный калибратор-спектрофотометр. За неимением его можно использовать стандартные значения для конкретного типа ЭЛТ (как правило, производитель записывает эти значения в DDC- и/или ICC-профиль монитора). Но учтите, эти данные несколько отличаются от действительности.
Точное значение гамма и цвет белого может дать обычный трехканальный колориметр класса Sequel. Но учтите, для этого прибора желательно, чтобы значения phosphors были заранее определены. Такой калибратор привязан к спектру пропускания своих светофильтров и не может самостоятельно, без поправочных коэффициентов, достаточно точно определить phosphors. Высокую точность такой калибратор дает только при аппаратной привязке к ЭЛТ (как в мониторах класса Barco).
После определения этих трех значений необходимо провести их коррекцию до стандартных — линеаризовать тонопередачу c помощью гамма-коррекции и установить необходимый цвет белого. Самые мощные профессиональные графические системы имеют встроенные системы характеризации и калибровки. В остальных случаях наивысшую точность дает метод поканальной LUT-based калибровки, использующий функцию гамма-коррекции, встроенную непосредственно в видеокарту.
Замечание 1. При определении стандартных значений гамма и цветовой температуры желательно учитывать стандарты других компаний, сотрудничающих c вами.
Замечание 2. Перед калибровкой монитора обязательно требуется установить оптимальную яркость и контраст (см. ниже), что позволит правильно учесть смещение уровня черного (рис. 3).
Q7 У меня на компьютере стоит система CMS. Проведет ли она мне гамма-коррекцию?
Answer: Описание нелинейности всех устройств, работающих c цветом, — неотъемлемая часть профилей системы CMS. Во многих случаях (в том числе в мониторах) такая нелинейность описывается через параболу (output=inputgamma). В этом случае в профиль устройства просто записываются значения gamma. Для монитора их три — на каждый канал RGB. Однако необходимо помнить (см. Q2), что гамма и гамма-коррекция — это не одно и то же. Сама CMS не проведет коррекции монитора.
Многие программы (к примеру Adobe Photoshop) способны самостоятельно учитывать нелинейности RGB-каналов монитора, описанные в профиле, и компенсировать их. И все же наиболее универсальный подход — линеаризация устройства специальными утилитами (к примеру, Adobe Control Panel для мониторов), которые используют аппаратные методы компенсации (в случае Adobe Control Panel — перепрограммирование LUT видеоплаты). Очень важная деталь: при применении таких утилит характеристики видеосистемы в целом изменяются, что требует обязательного адекватного отражения в профиле. Это же в целом относится и к другим устройствам — принтерам, сканерам и т.п.
Замечание. Важно однозначно определить все узловые точки графической системы, в которых происходит коррекция изображения — для начала на уровне драйверов, потом на уровне утилит, и наконец — на уровне программ. Затем минимизировать количество желающих поуправлять изображением без вашего согласия. Устранить конфликты (например, для Mac — между Default Calibrator и Adobe Gamma). И применять только те методы, которые дают контролируемый (управляемый) результат.
Q8 Что такое Working space и/или Reference system?
Answer: Working space — это общий знаменатель нормального workflow — цветовое пространство c большим (максимальным) цветовым охватом, через которое осуществляются все преобразования изображений. В одном случае он может быть определен как профиль головного монитора компании (например, Barco или Radius), в другом — как контрактная цветопроба, в третьем — как уникальный внутренний стандарт. Для второго случая переход c RGB в цветовой охват цветопробы — достаточно скользкий момент (мы упираемся в точность профиля цветопробы и/или механизма цветоделения), но и здесь есть возможность применить некий общий для всех профиль-знаменатель (Adobe RGB, например). Разберем более детально случаи, когда в компании:
Следует помнить, что основные проблемы возникают именно c RGB-преобразованиями: для отображения CMYK тот же Photoshop игнорирует RGB Working space и использует только значения из профиля монитора, указанного в системе (и, естественно, значения профиля цветоделения). Открывая RGB-файл, Photoshop пытается вместить его в Working space, используя встроенный профиль. Еcли его нет, то он просто «маппит» значения RGB в значения XYZ по профилю Working space. Вот три примера того, как Photoshop отображает на мониторе изображение (Working space не совпадает c Display RGB):
Замечание. При этом исходные данные в файле не изменяются.
Q9 Как правильно настроить яркость и контраст монитора?
Answer: Как уже отмечалось в Q6, перед калибровкой мы должны определить оптимальные яркость и контраст монитора. Разберем вопрос по порядку. Для начала обозначим их функции в видеосистеме (рис. 3 и 4). Контраст — это общий для трех каналов коэффициент усиления. Яркость — постоянная составляющая в условной формуле output= контраст(input) + яркость, устанавливающая начальный уровень черного. Из рисунков ясно, что оптимальные значения выбираются исходя из задачи: достичь максимально линейной характеристики на участке видеоусилителей. То есть яркостью выставляется окрестность черного — отсутствие паразитной светимости при нуле, и различимая глазом светимость 2% (рис. 3). Простейший тест — различимость элементов в растяжке (поканально) в пределах 0-4%. Оптимальным контрастом же определяют уровень белого, при котором видеосистема еще не насыщается (рис. 4). Простейший тест — различимость в растяжке в пределах 96-100%.
Q10 Какая точность необходима при работе с цветом?
Answer: Казалось бы, чем выше, тем лучше. Ведь электронная часть (допечатная подготовка — DTP) закладывает базу, фундамент качества продукции и должна обеспечить наивысший класс подготовки. Однако на практике мы не должны стремиться превышать точность эталонов и учитывать погрешности последующих операций (фотовывод, копировка и монтаж, печать):
Q11 Какой же монитор лучше?
Answer: Если мы выбираем Reference-монитор (эталон — экранная цветопроба) для большой компании, то мы должны учесть, как минимум следующее:
Как следствие, выбор здесь большой — на рынке множество серьезных мониторов на базе апертурной решетки или теневой маски (на любителя), изготовленных со знанием дела. Главное перед приобретением — проверить.
Q12 Калибровка произведена. Что теперь мне задавать в Color Settings программы Photoshop (CorelDraw, Illustrator, Painter, Quark и т.п.)?
Answer: Прежде всего необходимо различать профилирование (характеризацию) и собственно калибровку. Построение профиля монитора — не означает его калибровки. Калибровка системы подразумевает подготовку профилей для ВСЕХ используемых устройств ввода/вывода графической информации (сканер, монитор, принтер, цветопроба или даже печатная машина). Мышь и клавиатура не в счет. При этом, если устройство для калибровки недоступно (это касается в основном печати), используются некие стандартные профили типа Euroscale, SWOP, ColorMatch, прогнозирующие такие данные, как колористика красок и результаты красконаложений (бинаров). Для повышения точности прогноза в таких профилях следует уточнять такие числа, как растискивание и Total Ink. Наиболее быстрый и простой способ уточнения стандартного профиля — сохранить Separation Setup из Photoshop как ICC. Для версии 5.5 — настроить предсказание в CMYK Setup Build-In, затем переключиться в Tables и сохранить профиль в стандартное для CMS место. К примеру, для Win98 — Windows\System\Color. Соответственно для адекватного отображения одних и тех же файлов в разных программах мы должны задать одни и те же профили при настройке CMS в этих программах и использовать один и тот же engine (к примеру, Kodak CMS или Microsoft CMS).
Замечание. К сожалению, внутренний engine Adobe ACE знают только программы фирмы Adobe (и то не все).
Q13 Когда мне использовать в Photoshop функцию convert?
Answer: Все зависит от желаемого результата и версии Photoshop. Допустим, мы получили CMYK-файл c профилем, отличным от используемого у вас в CMYK Setup.
Если мы скажем don’t convert, то Photoshop 5.x откроет файл как есть и покажет его вам на экране так, как он будет выглядеть при печати c вашими установками цветоделения (то есть выставленными в меню CMYK setup). В случае c Photoshop 6.0 он вам покажет, как выглядит файл c установками, заданными в профиле. Используя меню View/proof, можно посмотреть, как он будет выглядеть c вашими установками цветоделения.
Если мы скажем Convert, то Photoshop преобразует данные из файла, используя ваш профиль (CMYK (profile) → RGB → CMYK (Photoshop). Это необходимо в случаях заведомо неправильного цветоделения. Например, задана система SWOP, а не Euroscale или задано слишком много (или мало) суммарного количества краски. При этом надо учитывать тот факт, что данные будут изменены без дополнительного анализа и предупреждений. То есть 100% Black будут преобразованы в 4 составляющие CMYK, поэтому к этой операции надо подходить c осторожностью. Кроме того, сами пересчеты, к сожалению, далеки от совершенства (необратимы) и приводят к безвозвратным потерям некоторой информации.
Для RGB эта операция аналогична по смыслу, только преобразование происходит через Working space (см. выше). Кстати, ошибки при преобразованиях RGB → RGB значительно меньше.
Q14 Нам извне принесли файлы без профилей (или мы не доверяем встроенным в них профилям). Что делать?
Answer: В этом случае высокой точности совпадения изображений между удаленным монитором и вашим получить невозможно. Попытайтесь определить, на какой платформе (Mac/PC/Silicon) готовили изображение, и присвойте (приклейте к) файлам соответствующий профиль (упрощенный) c гамма, равной 1,8/2,2/2,5 соответственно. Но помните, что для RGB-файлов такой способ не учитывает изменения в цветовых характеристиках мониторов и для профессиональных целей не годится.
Замечание. Для CMYK-файлов такой способ не учитывает изменений профиля цветоделения, что приводит к еще большим ошибкам.
Автор благодарит сотрудника сервисного центра ИНИТ Press Павла Абаканова за доброжелательную критику и помощь при написании статьи.




