Трой Соботка, Автор Filmic и AgX, пишет в прологе к «The Hitchhiker's Guide to Digital Colour»: «Эта серия статей поможет вам, создателям изображений, выжить в мире, полном чепухи, касающейся цифрового цвета. Если вы запутались в цифровом цвете, это не ваша вина» Через цепь фундаментальных вопросов Соботка заставляет читателя отказаться от интуиции и принять суровую правду: цвет — это не про ощущение, а физика, математика и договорённости.
Это не дословный перевод, а интерпретация (хоть и близкая к оригиналу) в стиле Дмитрия Гайдука. И Соботка, и Гайдук работают в «низкой стилистике», превращая сложное в доступное. А формат вопросов‑ответов как из индийских притч, где каждый следующий вопрос углубляет понимание предыдущего. В эту статью вошли первые 10 вопросов, а всего их на данный момент 37.
Жил‑был один графический программист. Дни и ночи он проводил, уставившись в мерцающий код, отлаживая шейдеры и вылизывая интерфейсы. Его мир был миром строгой логики, где всё либо 0, либо 1, либо #FF0000. Но однажды его друг, человек не от мира сего, сказал ему: «Брось ты свой комп, вот. Потрогай травку, что ли».
Программист, чей разум годами был заточен в строгие рамки if/else, решился на радикальный эксперимент. Он оторвался от стула, вышел на улицу и потрогал ту самую травку.
И его понесло.
Он смотрел на звёзды, которых не видел годами, и видел в них пиксели. Он смотрел автомобили, снующие по улицам и видел в них вычислительные шейдера. И тогда его осенило. Он вдруг понял, что вся вселенная — это просто бесконечный, плохо оптимизированный графический движок. А он, программист, — единственный, кто способен это починить.
Он вернулся в комнату, но уже не к компу. Он сел в угол, скрестив ноги, и уставился в стену. Прошла неделя. Друзья, забеспокоившись, зашли к нему и обнаружили его сидящим в той же позе. Глаза его были закрыты, но веки дёргались, будто он видел исходный код мироздания.
И вдруг он открыл глаза. Вокруг столпились испуганные лица.
«Чуваки, — хрипло произнёс программист. — Конкатенация — это иллюзия. Всё есть сложение света. Или умножение. Хрен поймёшь».
И все сразу поняли, что перед ними — ТРЁХЛИКИЙ БУДДА, Просветлённый Виджет. И что надо у него учиться.
С тех пор к его закопчённому балкону стекались искатели. В основном они рубились в игры и время от времени компилировали шейдер варианты. Но иногда находился какой нибудь смышленый парень что задавал вопрос про цвет настолько глубокий и фундаментальный, что Будда расплывался в улыбке и начинал рассказывать свои любимые притчи, которые называл глитчи.
А называл он их так, потому что в нашем глючном мире и притчи все глючные.
1. Глитча о Трех Ползунках и Трех Светляках

Однажды приполз к Будде Ученик Пиксель, с ноутбуком, на экране которого застыл в муках открытый фотошоп.
— Слушай, Трёхликий, — сказал Ученик Пиксель. — Я тут сижу, двигаю в своей проге этот дурацкий ползунок, например, красный. И такой спрашиваю себя: а что, собственно, происходит? Ну вот реально, чё происходит‑то? Я же не краску подливаю, там всё цифровое.
Трёхликий Будда посмотрел на него своими тремя лицами сразу: одно было скептическое, второе — сочувственное, а третье — просто хотело чаю. Но голос был один.
— А ты как думаешь? — спросил он, потому что хороший учитель всегда отвечает вопросом на вопрос.
— Ну, я думаю, может, я добавляю ему «краснусти», или меняю код, или... хз.
— Всё проще, — сказал Трёхликий Будда и ткнул пальцем в экран, прямо в один пиксель. Ученик Пиксель присмотрелся и увидел, что каждый пиксель — это на самом деле три крошечных диода: красный, зелёный и синий. Они светились.
— Вот смотри, — продолжил Трёхликий. — Ты двигаешь ползунок вправо — и этот маленький красный диодик внутри пикселя начинает тупо светить ярче. Всё. Всё, что ты делаешь — это прибавляешь или убавляешь яркость одной из этих трёх лампочек. Не надо про «краснусть». Ты просто говоришь ей: «Свети, зараза, сильнее!» И она светит.
Ученик Пиксель сидел и смотрел на ползунок, а потом на пиксель, а потом снова на ползунок.
— И всё? — спросил он.
— И всё, — подтвердил Трёхликий Будда. — А что ты хотел? Следующую жизнь вспоминать? Спроси что‑нибудь посложнее.
Ученик Пиксель кивнул и потянулся к следующему ползунку. Зелёному.
2. Глитча о Трёх Ликах Нуля и Шести Десятых
Ученик Пиксель не выдержал и трёх дней. В его голове, как в плохо скомпилированном шейдере, пульсировал вопрос. Он ворвался на балкон к Трёхликому Будде, который на этот раз медитировал, глядя на три чашки чая: одна была полная, другая — пустая, а третья — наполовину, или, если точнее, на 0.214.
— Трёхликий! — выпалил Ученик. — Я всё понял про светляков! Но теперь мой мир рушится! В одной программе у меня ползунок показывает 0.6, в другой — 121, а в третьей какая‑то хрень вроде 0×99! Это что, три разных силы света? Они что, между собой не договариваются?!
Трёхликий Будда медленно повернул к нему своё скептическое лицо.
— А ты как думаешь? — спросил он, по старой доброй привычке.
— Думаю, может, это разные секты? Или 0.6 — это «немного светло», а 121 — «сильно светло»?
— Всё проще, — сказало сочувственное лицо Будды. — 0.6 — это не количество света. Это доля пути. Доля пути, который должен пройти твой светляк от немоты до крика.
Он взял чашку, наполненную наполовину, и поднял её.
— Смотри. Ноль — это тьма. Единица — это максимальная яркость, на которую способен этот конкретный светляк в этой конкретной вселенной. А 0.6... это просто отношение. Как мера оставшегося в стакане чая. Ни о чём тебе по сути не говорящая.
— Но тогда почему 121?! — почти взвыл Ученик Пиксель. — Какое отношение имеет 121 к 0.6?!
Тут в разговор вмешалось третье лицо Будды, то самое, что всегда хочет чаю, но сейчас в его глазах загорелся огонь техно‑фанатизма.
— А это, братан, вопрос веры. Веры в то, что 256 шагов — это священное число. — Он многозначительно посмотрел на Ученика. — Компьютер — это тупой калькулятор. Он любит целые числа. И исторически так сложилось, что для кодирования света кому‑то пришло в голову использовать 8 бит. А 8 бит — это 2 в восьмой степени... 256. От нуля до 255.
Он написал в воздухе: 153 / 256.
— Посчитай. Что получится?
Ученик Пиксель, машинально, представил в уме калькулятор.
— ~0.6... — прошептал он в ошеломлении.
— Именно! — просипел техно‑Будда. — А 0×99 — это просто 153, но записанное в шестнадцатеричном виде, чтоб все айтишники чувствовали себя избранными жрецами. Это один и тот же бог, просто на разных языках: на понятном человеческом (0.6), на языке целых чисел (153) и на языке хекс‑шабаша (0×99). Вся эта свистопляска — просто чтобы представить дробь в виде целого числа.
Ученик Пиксель сел на пол. Глаза его были стеклянными.
— То есть... все эти форматы... они все говорят об одном и том же отношении? Просто одни показывают мне готовую дробь, а другие — номер шага из 255?
— Да, — хором сказали все три лица Будды.
— И самый простой — это 0.6?
— Самый простой для твоего мозга, — поправил его Будда. — Потому что это чистая идея. Идея доли, отношения, соотношения. Всё остальное — технический говнокод истории.
Ученик Пиксель глубоко вздохнул. Хаос в его мире снова начал обретать структуру.
— Ладно. А откуда тогда берутся сами эти минимум и максимум? Кто их определяет?
Трёхликий Будда усмехнулся.
— А вот это, юный Пиксель, вопрос уже на следующую глитчу. Иди, перевари сначала это. И не трогай мои чашки.
3. Глитча о Тоне, Который Не Тон, а Оттенок, или Наоборот
Следующие несколько дней Ученик Пиксель провёл, тыкая в ползунки с чувством глубокого, почти просветлённого понимания. Он знал, что меняет интенсивность светляков. Знавал он и о том, что 0.6 — это всего лишь доля пути. Но из этого знания, как из плохо замоченного шейдера, прорастали новые, ещё более цепкие сорняки сомнений.
Он снова предстал перед Трёхликим Буддой, на этот раз с таким потерянным видом, что даже лицо Будды, вечно хотевшее чаю, проявило к нему интерес.
— Трёхликий! Новое проклятие свалилось на мою голову! — закричал Ученик. — Вот есть тон! Или оттенок! Или значение (Value)! Я уже хрен пойми, что из этого что! В одной статье пишут «тон», и имеют в виду красный‑синий‑зелёный. В другой — «значение», и это про светлоту! Язык сломаешь! Как понять, что меняется, когда я двигаю слайдер? Меняется ли цвет самого света, когда я меняю его интенсивность?
Трёхликий Будда с обречённым видом отодвинул панель управления. Его скептическое лицо было готово разбиться о стену, сочувственное — плакать, а третье просто бормотало: «Hue, Value, Hue, Value...»
— Снова ты всё усложняешь, — просипело сочувственное лицо. — Русский язык — это такой легаси‑код, в котором «тон» используют для двух разных переменных — brightness и hue. Забудь про слова. Смотри на суть.
Он взял свой монитор‑голову и вывел на экран три пятна: одно — ярко‑зелёное [0.0, 1.0, 0.0], другое — потемнее [0.0, 0.75, 0.0], третье — совсем тёмное [0.0, 0.5, 0.0].

— Вот скажи, уважаемый, эти три цвета — они разные? — спросил Будда.
— Ну... да! — Ученик Пиксель тыкал пальцем в экран. — Вот это светло‑зелёное, это... тёмно‑зелёное... это... очень тёмно‑зелёное!
— А по цвету? — перебил его техно‑лик Будды. — Отбрось яркость. Отбрось светимость. Смотри только на оттенок. На ту самую хроматичность, про которую все умники говорят.
Ученик присмотрелся. И правда, все три пятна были одним и тем же зелёным.
— Кажется... они одного цвета... — неуверенно прошептал Ученик. — Как три лампочки одной модели, но одна на полную мощность, другая на половину, а третья через разрыв в проводе...
— БИНГО! — гаркнули все три лица разом. — Изменение интенсивности одного RGB‑канала меняет только количество испускаемого им света, а не его исходный цвет!
Техно‑лик продолжил, сверкая пикселями:
— Если упростить до безобразия, твой зелёный диод — он всегда излучает свет одной и той же хроматичности. Он не становится из зелёного салатовым или изумрудным, когда ты убавляешь ему мощность. Он просто начинает хуже светить. Всё. Его природа неизменна. [0.0, 1.0, 0.0], [0.0, 0.0000001, 0.0] — это один и тот же цвет, просто в первом случае он орёт, а во втором — шепчет на ушко.
Ученик Пиксель задумался. В его сознании медленно укладывались пазлы.
— Так... когда я меняю ползунок... я не меняю тон... я меняю... значение? Или яркость? Короче, я меняю не оттенок, а силу свечения?
— ВОТ! ОН! ПОНЯЛ! — взревел Трёхликий Будда и чуть не разбил свою чайную чашку от волнения. — Ты меняешь количество. Не качество! Качество — это фиксированная характеристика самого светляка. А количество — это то, что мы в него вкачиваем.
— Значит, всё, что мы знаем на данный момент... — начал подводить итоги Ученик.
‑...это то, что мы не знаем нихрена! — весело заключил Будда. — Но мы знаем, чего мы не знаем! А это, брат, уже полпути к просветлению. Мы знаем, что двигаем ползунком интенсивность. И знаем, что цвет диода от этого не меняется. А всё остальное — тёмный лес, в который мы сейчас и направимся.
4. Глитча о Протухшем Цвете, Настоятеле Варсонофии и Настоящих Светляках

Ученик Пиксель, окрылённый новыми знаниями, решил применить их на практике. К нему обратился Настоятель Варсонофий, хранитель древнейших цифровых сутр. Тот попросил сделать обложку для нового свитка цвета «просветлённой лазури». Ученик Пиксель, тщательно подобрав соотношения RGB на своём мониторе, получил идеальный, по его мнению, оттенок. Цвет и впрямь выглядел возвышенно и духовно.
Он сжёг обложку на флешку, похожую на древний амулет, и понёс её Варсонофию. Тот вставил флешку в свой древний, закопчённый монитор, вмурованный в каменную стену храма, и на экране проступил цвет, который можно было описать только одним словом… или фразой “цвет монастырских щей на третий день Великого Поста”.
— Что это?! — возопил Настоятель. — Я просил лазурь для сутр о просветлении, а ты мне принёс... это?! Ты что, над святыней изволишь глумиться?!
Ученик Пиксель, в панике, рванул обратно к Трёхликому Будде, чуть не снося по пути стойку с чаем.
— Трёхликий! Катастрофа! Цвет протух! Я его тут создал, прекрасный, а пока нёс — он испортился! На флешке он, что ли, окислился?!
Первое лицо Будды, скептическое, закатилось в немом хохоте. Второе, сочувственное, смотрело на Ученика с бесконечной жалостью.
— Успокойся, — сказало сочувственное лицо. — Цвет не протух. Он никуда не девался. Просто монитор твоего Настоятеля Варсонофия настолько древний и немощный, что светляки в нём — совсем другие. Они тусклые, блёклые, и не могут показать тот сочный цвет, что видел ты.
Техно-лицо Будды оживилось, увидев повод для очередного просветления.
— А это подводит нас к вопросу, который ты бы никогда не задал, потому что всё это время ты переживал оплатит тебе Настоятель работу или нет
Ученик Пиксель сглотнул. Мысль о неоплаченном счёте действительно мелькнула у него в голове.
— Вопрос четвёртый, — прогремел Будда. — А какого, собственно, цвета сами эти три светляка в ТВОЁМ мониторе? Не абстрактно «красный», а какой именно красный? Ты знаешь?
Ученик Пиксель замер. Он водил этими ползунками тысячи часов, но ни разу не спросил себя – а что, у этого красного есть прописка?
— Ну... Я думал, красный это типа просто красный... — растерянно пробормотал он.
— А вот и нет! — воскликнуло техно-лицо Будды. — С огромной долей вероятности, цвета твоих светляков чертовски близки к красному, зелёному и синему по стандарту REC.709!
Ученик ждал услышать другое, более распиаренное слово. Он даже губы сложил, чтобы его произнести.
— Но... а sRGB?..
— АГА! — Будда был торжествующ. — Попался! sRGB — это тот же REC.709, но в парике и с косичкой! Первичные цвета, сами светляки — идентичны! Это физический стандарт, железная необходимость, прописанная в паспорте твоего монитора!
— Значит... у Настоятеля Варсонофия монитор не sRGB?
— sRGB! — фыркнуло первое лицо. — Но у него, скорее всего, светляки такие же потрёпанные, как и его сутры. А если бы у него был макбук про, с их выпендрёжным Display P3, то ты бы увидел, что твой «лазурный» на его экране выглядел бы ещё сочнее! Потому что у него в пикселях сидят совсем другие, более насыщенные светляки!
Ученик Пиксель смотрел на свой дисплей с новым, почти экзистенциальным ужасом и восторгом. Всё это время он тыкал в интерфейс, не зная, что за ним стоят реальные, физические объекты с жёстко заданными свойствами.
— А теперь, — Трёхликий Будда лениво потянулся к своей трёхкомпонентной чашке, — иди и объясни это Настоятелю Варсонофию. Или просто сделай ему цвет погрязнее. Чтобы и на его мониторе смотрелось.
— И попроси его доплатить за консультацию, — добавило техно-лицо. — Просветление нынче дорого стоит.
5. Глитча о Цвете Колеса Сансары и Бесполезных Числах
Настоятель Варсонофий и его старый приятель Авва Афиноген, яростно спорили, стоя перед фреской с изображением Колеса Сансары.
— Канонический цвет колеса — [R:180, G:60, B:50]! — горячился Настоятель, тыча в планшет. Это цвет страсти и привязанности!
— Ересь! — кричал другой. — В сутре ясно: [R:195, G:35, B:45]! Это цвет очищающего огня!
Ученик Пиксель, заинтересовавшись, попросил показать ему первоисточник. Каково же было его удивление, когда в древнем свитке он нашёл лишь туманное описание: «Цвет подобен закату в сезон дождей».
— Но... как же вы получили эти цвета? — спросил он у спорящих.
— По чувству правды! — хором ответили оба монаха.
Пиксель в расстройстве пришёл к Трёхликому Будде, застав его за созерцанием трёх абсолютно одинаковых на вид чаш с рисом.
— Трёхликий! — взмолился он. — Они спорят о числах, которых нет в сутрах! Как вообще можно точно описать цвет?
Вопрос пятый: Так что же является базовой единицей измерения в RGB?
Техно‑лицо Будды озарилось пониманием.
— Ах, прекрасный вопрос! — сказало оно. — Смотри...
Техно‑лицо Будды озарилось. Он протянул Пикселю три разных коробки, в одной лежали гири, в другой — камни, в третьей — мошна с монетами.
— Взвесь эти чаши, — попросил Будда.
Пиксель послушно выполнил: первая чаша: 3 камня, вторая: 5 железных гирь, третья: 27 монет
— Какая чаша тяжелее? — спросил Будда.
— Но... я не знаю, сколько весят камни, гири и монеты! — растерялся Пиксель.
— Именно! — обрадовался Будда. — Теперь смотри на твои RGB‑значения.
Он вызвал в воздухе три цветовых поля с одинаковыми числами [180, 60, 50], но выглядевшие совершенно по‑разному.
— Это sRGB, это Adobe RGB, а это rec.2020, — пояснил техно‑Будда. — Одинаковые числа — разные цвета. Как твои 3 камня, 5 гирь и 27 монет. Без контекста — просто цифры.
Ответ пятый: Базовая единица измерения RGB‑триады, рассмотренная в изоляции, без дополнительной информации, не означает абсолютно ничего.
Пиксель с ужасом смотрел на три разных «красных» с одинаковыми числами.
— Но... все эти статьи, уроки... они дают точные числа!
— И все они врут! — гаркнуло скептическое лицо. — Они не несут абсолютной истины! Это просто код, ожидающий декодера!
Сочувственное лицо добавило тише:
— Но что же даёт смысл? — чуть не плача, спросил Ученик.
— Контекст! — воскликнул Будда. — Нам нужны ДВЕ вещи: цветность наших конкретных светляков и система измерения соотношения интенсивности! Без этого твои 60 — это «цвет заката в сезон дождей».
Пиксель стоял, понимая, что прикоснулся к великой истине: в мире цифрового цвета нет абсолютных истин, есть только договорённости. И что древний писец, описавший цвет как «закат в сезон дождей», возможно, был мудрее всех их вместе взятых.
6. Глитча о Тайной Функции и Воплях о Гамме
Ученик Пиксель, измождённый абстракциями, вновь предстал перед Трёхликим Буддой. В глазах его горел огонь человека, который неделю питался только числами с плавающей запятой.
— Слушай, — выдохнул он, без предисловий. — Светляки, цвета, коды... ладно. Но вот ты говоришь «код 1.0 — это максимум». А что это за максимум? В чём он? В нитах? В свечах? И если я поставлю 0.5, это будет половина этого твоего максимума? Да или нет?
Трёхликий Будда посмотрел на него своими лицами. Скептическое изобразило маску презрительного спокойствия. Сочувствующее — лёгкую боль. Техно‑лицо же вспыхнуло, как перегруженный чип.
— Ты хочешь простой ответ? — просипело оно. — Его нет. Ты упёрся в дверь, за которой живёт передаточная (transfer) функция.
— А, это та, которую «гаммой» называют? — встрепенулся Ученик, почувствовав почву под ногами. — Ну так я об этом читал! Это же...
«ЗАТКНИСЬ!»
Грохот был таким, что со стола упала чашка для медитаций. Голос исходил сразу от трёх лиц, слившись в единый гневный хор.
— Не смей произносить это слово! — гремел Будда. — Это слово — уловка для тех, кто хочет казаться умным, не понимая сути! Это мантра для моржей, которые устроили себе лежбище на берегу собственного невежества! Ты думаешь, зная это слово, ты что‑то понял?
Ученик Пиксель отпрянул, прижав ноутбук к груди, как щит.
— Что тогда такое передаточная функция и почему она важна? — прошептал он.
Гнев Будды столь же внезапно улёгся, сменившись тишиной, густой, как смола.
— Передаточная функция, — сказало сочувственное лицо почти шёпотом, — это то, что превращает бездушный код в свет. Не более того. И не менее. Это формула. Чёрный ящик. Договорённость между твоим числом и лампочкой.
— Но 0.5... — не унимался Ученик.
— Что 0.5? — перебило его скептическое лицо, кривясь в усмешке. — Половина? От чего? От линейной шкалы? От твоего восприятия? От бюджета электричества? Ты даже вопроса задать правильно не можешь, потому что не знаещь, о какой шкале идёт речь.
И тогда техно‑лицо, пылая холодным светом, изрекло:
— Ответ шестой: Передаточная функция — это математическая формула, описывающая, как код соотносится со световой энергией.
Наступила пауза. Звук формулы повис в воздухе, ничем не наполненный.
— И... всё? — растерянно спросил Ученик Пиксель.
— Всё, — кивнул Будда. — Пока ты не узнаешь, какая именно это функция для твоего устройства, твой код 0.5 будет просто красивым иероглифом.
С этими словами все три лица Трёхликого Будды синхронно закрыли глаза, погрузившись в глубокую медитацию. Разговор был окончен. Ученик Пиксель остался стоять с одним лишь термином в голове и с чувством, что его снова оставили на пороге ответа, указав лишь на дверь, на которой не было ни ручки, ни таблички.
7. Глитча о Трёх Чаях и Линейной Природе Света
Ученик Пиксель сидел, уставясь в свой ноутбук, с лицом человека, который пытается прочитать инструкцию на незнакомом языке.
— Трёхликий, — взмолился он. — Я сломался. Меня тут спросили «у тебя цвет линейный?», а что это значит — непонятно.
Трёхликий Будда, не говоря ни слова, поставил перед ним три глиняные чашки.
— Выпей, — сказало его сочувственное лицо. — Но не сразу. По очереди.
Ученик сделал глоток из первой. Мир поплыл. Стены балкона растворились, и он оказался в школьном кабинете физики. За учительским столом сидел Трёхликий Будда в засаленном халате и с указкой.
— Так, Павличенко, прекрати спать! — прогремел он. — Сегодня про энергию. Свет — это не магия, это энергия. Как кирпичи. Один кирпич плюс один кирпич — два кирпича. Шесть кирпичей плюс семь кирпичей — тринадцать кирпичей. Понял? Свет ведёт себя прилично. Его можно посчитать. Это и есть линейность — когда на графике твои кирпичи ложатся в ровную линию. Осознал? Иди дальше — и вручил ему вторую чашу.
Ученик Пиксель, ещё не опомнившись, сделал глоток. Кабинет физики сменился кабинетом биологии. Тут Трёхликий Будда был в белом халате и с плакатом, на котором была изображена кривая, похожая на дохлого червяка.
— А теперь, Павличенко, забудь всё, что только что услышал, — сказал Будда‑биолог. — Твой глаз — это не счётчик кирпичей. Это кривой и пьяный приёмщик. Если ты дашь ему один кирпич, он скажет: «О, кирпич». Два кирпича — «Ну, немного больше кирпичей». А тринадцать кирпичей — «Ну в два раза больше стало. Или в три». Видишь эту кривую? Это твоё восприятие. Оно нелинейно. Твоё «ощущение светлоты» не совпадает с количеством энергии. Оно отстаёт, обгоняет и вообще ведёт себя как упырь. Запомни: физика — линейна, а твоё жалкое тело — нет.
Прежде чем Ученик успел что‑то понять, он осушил третью чашу. Очнулся он на кушетке в кабинете психолога. Трёхликий Будда в очках и с блокнотом вёл себя тихо и внимательно.
— Итак, — мягко начал он. — Давайте примем простой факт. Тот свет, который есть, и тот свет, который вы видите, — это не одно и то же. Ваше сознание не зеркало. Оно — кривое стекло, подкрашенное памятью, ожиданиями и страхом перед дедлайном. Вы должны смириться с этим разрывом. Смириться, что ваше восприятие обманывает вас. Что «вдвое ярче» на самом деле не вдвое. Что ваша интуиция — лгунья. Это и есть психология света.

Видение рассеялось. Ученик Пиксель снова сидел на балконе. Перед ним дымились три пустые чашки.
— И что же мне со всем этим делать? — спросил он, чувствуя себя одновременно и просветлённым, и окончательно опустошённым.
Трёхликий Будда смотрел на него всеми тремя лицами.
— Ответ седьмой, — сказало техно‑лицо. — «Линейный» — это когда мы говорим о самой физике света, о его энергии. О тех самых кирпичах. О том, как они на самом деле складываются, до того, как твой кривой глаз и твоё замутнённое сознание всё это исказят.
— Значит... «линейное цветовое пространство»...
— ...это попытка работать с самими кирпичами, а не с кривыми отчётами твоего глаза‑приёмщика! — закончило скептическое лицо. — Но одного этого слова мало! Линейный... относительно чего? Ах, это уже следующий вопрос.
И Будда снова ушёл в медитацию, оставив Ученика Пикселя наедине с тремя пустыми чашками и знанием, что всё, что он видит, — иллюзия, а единственная правда — это скучные, прямолинейные кирпичи, которые ему теперь предстояло как‑то пристроить к своим цветам.
8. Глитча о Сне в Китайской Коробке
Трёхликий Будда остался в одиночестве после ухода Ученика Пикселя. Воздух звенел от невысказанных вопросов, и Будда, вопреки привычке, решил провести ревизию собственных откровений.
«Сначала, — подумало его скептическое лицо, — мы открыли, что означают цифры в RGB‑триплете. Затем мы узрели, что эти цифры означают некое отношение, однако отношение бессмысленное без привязки к некоему устройству. Потом мы нашли мост между кодом и устройством — передаточную функцию. И, наконец, мы докопались до корня — до линейной природы самого света, которую наше восприятие коверкает в дугу».
В тишине балкона вопрос родился сам собой, без всякого Ученика, обращённый к самому себе.
Вопрос восьмой: К какой именно «линейности» мы всё это время апеллировали?
«Да как к какой?! — мог бы возопить Пиксель. — Линейность она и в Африке линейность! Мы же считали эти кирпичи!»
Но Будда молчал. Потому что знал: дьявол, как и просветление, кроется в деталях. И главный дьявол цифрового цвета — в отсутствии чёткого контекста.
Ответ восьмой, — прозвучало в тишине эхом. — До сих пор «линейность», о которой мы говорили, отсылала либо к определенному типу дисплея, либо в более общем смысле мы говорили о кодировке сигнала приведенного к выходу (Referred to Output)
Ученик Пиксель дёрнулся и проснулся на своей циновке. Он сел, как ужаленный, и тут же начал спорить с пустотой:
— Погоди! Что это вообще за хрень такая приведенная к выходу?! — его голос был хриплым от сна. — А фотография в камере? Там же нет дисплея! А принтер? Он тыкает чернила! А сканер? Он вообще свет ловит! Твоя теория рассыпается! Код не всегда живёт внутри монитора!
Он умолк, тяжко дыша. Да конечно, и CMYK, и RGB кодировки не имеют никакого значения, если не приведены к какому‑то устройству — принтеру, сканеру, матрице фотоаппарата... Везде своя «кривая», своя передаточная функция, свой максимум и минимум, свои отношения между кодом и количеством чернил..
Он был в полном недоумении. Откуда он это знает? А самое главное, зачем ему это все нужно?
Настоятель Варсонофий проснулся в своей прохладной келье от странного сна. Ему привиделся юный послушник, который спорил с трёхликим Буддой о природе цвета.
«Что за чушь мне приснилась? — проворчал Настоятель, с трудом отличив сон от яви. — И при чём тут какие‑то „передаточные функции“?»
Он отбросил одеяло, подошёл к своему древнему, доброму монитору, который мог показать ровно 16 цветов, выбранных по имени из списка. Никаких ползунков. Никаких кривых. Только «небесная лазурь», «святой белый» и «цвет колеса сансары». Он щёлкнул выключателем. Экран засветился ровным зелёным цветом, каким и был задуман с завода. Никакой передаточной функции ему было не нужно. Абсолютный, палитризированный покой.
Настоятель вздохнул и открыл папку со своими любимыми сутрами. Он решил записать сутру, что пришла ему сегодня во сне:
Оптимист видит, что стакан на половину полон.
Пессимист видит, что стакан на половину пуст.
Графический программист знает, что стакан полон на 0.214
9. Глитча о Красном Лотосе и Проступившей Тьме
Настоятель Варсонофий, наученный горьким опытом с говняными мониторами, наконец приобрёл новый, супердорогой монитор, сиявший, как тысяча отполированных алмазов. Позвав Ученика Пикселя, он указал на сияющий фон цвета «просветлённой лазури».
— Чадо, — возвестил Настоятель. — Наша новая обложка должна нести образ Священного Красного Лотоса.
— Но помни — продолжал Настоятель. — узреть его истинную суть могут лишь чистые сердцем. Сделай так, чтобы для глаз непосвящённых, с мутным взором, он был размыт, будто бы сквозь туман неведения.
Ученик Пиксель, довольный возможностью работать на таком дисплее, с рвением принялся за дело. Он создал кристально чёткий красный лотос и наложил его на голубой фон. Всё выглядело идеально.

Затем он применил размытие, дабы соткать тот самый туман. И тут случилось нечто ужасное. По краям лепестков размытого лотоса, там, где красный смешивался с голубым, проступила угрожающая, неестественно чёрная кайма. Она не была просто тенью — она была провалом в небытиё, дырой в реальности. Казалось, будто из‑под изображения самого лотоса пробивается тьма, а возможно, и сам Кала, Повелитель Времени и Разрушитель Миров, пытается просочиться в священный образ.

— Что это?! — в ужасе воскликнул Настоятель Варсонофий, отскакивая от монитора. — СКВЕРНА! Ей не место на священной земле! Она оскверняет лотос!
Не помня себя от священного ужаса, он схватил дорогущий монитор и с криком «Изыди!» вышвырнул его в окно своей кельи.. Ученик Пиксель, поражённый увиденным и гибелью прекрасной техники, в панике побежал к Трёхликому Будде.
— Трёхликий! Катастрофа! Я создал скверну! Я вызвал самого Кали, или кого похуже! Настоятель выбросил монитор!
Трёхликий Будда, выслушал его и рассмеялся:
— А вот почему у него все мониторы вмурованы в стену! Успокойся. Ты не вызывал никакого Кали. Ты всего лишь столкнулся с тупостью наших инструментов. Ты видел тёмную кайму?
— Да! Она была ужасна!
— Вопрос девятый, — изрёк Будда, — почему «линейный» свет так важен? А потому что эта кайма — дитя нелинейного света. Твоя программа, вслепую смешивая коды, работает с искажёнными значениями. Она думает, что смешивает краски, а не свет. Она берёт код 0.5, который на мониторе выглядит как «половинная яркость», и тупо вычисляет с ним, будто это и есть половинная энергия. Но это ложь!
Он ткнул пальцем в воздух, и в нём зажглись два графика — один кривой, как спина верблюда, другой — ровная прямая. Ученик Пиксель уже не раз видел эти графики, но так до сих пор не понял, для чего они ему нужны.
— В реальном мире, где свет линеен, один поток света, смешиваясь с другим, даёт их правильную сумму. А в твоём искажённом, нелинейном мире, на стыке рождается эта самая тьма — математический артефакт, порождённый ерундой. Ты не смешал свет. Ты сложил кривые коды и получил провал. В прямом и переносном смысле.
Ответ девятый: Линейный свет важен, потому что код RGB не отражает реальный свет, и если его значения не преобразовать в правильные, линейные соотношения, получится плохая, никудышная математика.
— Но как это исправить?! — взмолился Ученик.
— Заставь свои вычисления работать в линейном цветовом пространстве, — пояснило техно‑лицо. — Преобразуй коды в линейные значения, проведи все манипуляции — смешение, размытие, композитинг — и лишь потом верни обратно в нелинейный вид для монитора. Тогда твой размытый лотос будет мягким и чистым, без всякой скверны. Потому что ты будешь имитировать физику реального света, а не искажать её кривыми цифрами.

Ученик Пиксель слушал, и до него наконец доходила простая и страшная истина: его инструменты по умолчанию лгут ему. Что даже на самом дорогом мониторе можно сотворить ерунду, если не понимать, что ты на самом деле делаешь.
— Значит... — медленно проговорил он, — даже в самом священном образе может проступить тьма, если смешивать его с миром неправильной математикой?
— Именно так, — кивнул Трёхликий Будда. — А в следующий раз, прежде чем размывать лотос, включи в своей проге «линейный бленд». Если, конечно, она не сломана, как большинство из них.
10. Глитча о Четырёх Мешках Картошки и Экономном Настоятеле
Как‑то раз Ученика Пикселя подкараулил Настоятель Варсонофий. Он вез в повозке на монастырский двор четыре мешка картошки. «Стой, чадо! — воззвал Настоятель. — Поможешь мне исполнить рецепт идеального монастырского варёного картофеля, что завещал мне сам Авва Афиноген!»
Пиксель отнекивался, говорил, что ему надо к Трёхликому Будде по неотложным цветовым делам. Но Настоятель был настойчив: «Это не долго, увидишь!»
Пришлось согласиться. Как оказалось, рецепт был не быстрым. Велел Настоятель рассортировать картошку по размеру: в первый мешок — самую мелкую, во второй — покрупнее, и так до четвёртого, где были отборные, крупные клубни. Каждый мешок надлежало закопать на отдельном поле.
Долго ли, коротко ли, как и ожидал Пиксель, из мелкой картошки выросла ботва пониже, из крупной — повыше. Но разница в росте была не столь уж велика. В положенный срок картофель выкопали. И что же? На поле с мелкой картошкой выросла опять мелкая, на поле с крупной — крупная. Собрали урожай обратно в те же четыре мешка.
«До чего же тупой настоятель! — думал Пиксель, бредя к Трёхликому Будде. — Что за дурацкая затея — зарывать картошку, чтобы выкопать её снова? Почему нельзя было сразу сварить?»
Выслушав его, Трёхликий Будда рассмеялся всеми тремя лицами.
— Сам‑то ты не умнее! Неужели не видишь? Неужели ты до сих пор не осознал, что ты конвертируешь линейные значения цвета в нелинейные, только для того, чтобы монитор сконвертировал их обратно в линейные? Ведь и считать удобнее в линейном цвете, как ты уже знаешь из истории с лотосом.

— Действительно — растерялся Пиксель. — И вправду, зачем?
— А Настоятель Варсонофий — гений экономии! — продолжал Трёхликий. — Посмотри‑ка внимательнее: самую крупную картошку он извел полностью, но поскольку поля одинаковые, во втором мешке осталось немного картошки, в третьем — больше, а четвертый был почти полный!
Пиксель обомлел: так и есть.
— Настоятель, — продолжил Будда, — сэкономил картошку и продал излишки на стороне, получив профит. Мелкой картошки в мешке было просто больше штук. И он потратил лишь ту её часть, что была необходима для видимости урожая. Так и мы, переводя цвет в нелинейное представление, экономим биты там, где излишняя точность не нужна твоему кривому глазу.
Пиксель, недоумевая, спросил: Вопрос десятый: Если и считать удобнее в линейном свете, и мониторы выводят линейный свет, зачем тогда вообще нужны нелинейные преобразования?
— Представь, что линейный свет — это твои четыре мешка картошки разного калибра, — сказало техно‑лицо Будды. — Если бы мы хранили и передавали изображения в линейном свете, нам пришлось бы таскать с собой все четыре мешка целиком! Это раздуло бы файлы, съело бы всю пропускную способность интернета. Но древние программисты были скрягами, как и настоятель. Они заметили, что глаз не видит разницы между 98-м и 99-м самым ярким «картофелем» и поэтому их можно объединить в один мешок.

— И что же мы делаем?
— А мы поступаем как Настоятель! — воскликнуло сочувственное лицо. — Мы перераспределяем биты. Мы берём линейный свет и «закапываем» его, преобразуя по нелинейной кривой. Много битов отдаём теням и средним тонам, где глаз зорок, и экономим их на ярких участках, где он не различает нюансы. Получается сжатое, «нелинейное» изображение. А потом монитор его «выкапывает» — преобразует обратно в линейный свет для свечения.
Ответ десятый: Нелинейное кодирование — это всего лишь схема сжатия, которая отбрасывает избыточные значения, невидимые для нашей системы восприятия.
— Выходит, — прошептал Пиксель, — я всё это время был как тот настоятель... Тратил уйму сил на ненужные преобразования?
— Не на ненужные! — поправил Будда. — На экономные. Ты просто не понимал их сути. Теперь же ты знаешь: твоя задача — работать с «картошкой» в её чистом, линейном виде, а для сохранения и отдачи на монитор — использовать «посадку» и «сбор урожая» по правильным схемам. И тогда ты не будешь тратить биты впустую, как расточительный повар, и не увидишь тёмной каймы, как в глитче про лотос.
Ученик Пиксель посмотрел на закат, в свете которого уже не видел артефактов, а лишь экономно и грамотно распределённые биты. И от этой мысли ему стало спокойно.
Надеюсь вам понравился перевод и стоит переводить и дальше. У меня уже готовы несколько следующих глитч, в одной из них Пиксель случайно отправляет диаграмму CIE-1931 на принтер прямо в хранилище древних сутр! Что там началось, можете себе представить!
RoasterToaster