Я люблю Фотошоп. Честно-честно! Я работаю с ним каждый день уже лет десять. Нельзя переоценить влияние Фотошопа на отрасль цифровой графики — которая во многом определяет, как выглядит мир вокруг нас! Я практически уверен, что прямо сейчас в вашей комнате есть как минимум одна вещь, в дизайне которой принимал участие Фотошоп. И, конечно, картинки для этой статьи были подготовлены в Фотошопе!
В своей сфере Фотошоп — лидер. Его можно называть «стандартом» (что скорее хорошо) или «монополистом» (что скорее плохо). Но факт остается фактом — если вы работаете с любым видом цифровой графики, вам приходится мыслить терминологией Фотошопа и следовать идеям его создателей.
Признаться, Фотошоп — это не самая сложная компьютерная программа из существующих (поскольку, будем откровенны, цифровые изображения — это не самая сложная часть компьютерной науки). Однако, он все-таки весьма сложен. Причин несколько. Во-первых, в Фотошопе много функций и, следовательно, возможностей. Во-вторых, он стар (он очень стар, он… ну вы понимаете :-) — почти моего возраста! Такая долгая история разработки означает, что создатели Фотошопа прошли долгую дорогу, и у них не было возможности пересмотреть основные концепции или переделать какие -то вещи заново. Совместимость и все такое. И потом, зачем чинить то, что не сломалось?
Однако, сегодня ночью меня посетила идея… нет, ИДЕЯ! И теперь она сидит у меня в голове, стучится и просится наружу, хочет быть рассказанной, опубликованной и обсужденной. А что может быть лучше интересного обсуждения!
Итак...
Проблема, которую никто не замечает
Первое, что вы узнаете, начиная изучать Фотошоп — это слои. Слой — это основа основ Фотошопа. Если вы не представляете себе, как работают слои, боюсь, что данная статья будем вам совсем не интересна. Ну если очень кратко — это «картинка внутри картинки». Фотошоп складывает слои один над другим, и вы можете работать со слоем как с отдельной картинкой. Все равно, в результате работы, на мониторе (бумаге) будет «склеенное» (merged) изображение.
Ну и в чем может быть проблема? Что-то, что мы все время видим, но не понимаем, что проблема именно там?
Лирическое отступление. Знаете ли вы, что вы видите ваш нос все время, с утра до ночи? Даже прямо сейчас, читая эти строки. Просто ваш мозг приучился не обращать на него внимания.
Так, вернемся к слоям! Предположим, вы открыли в Фотошопе документ, в котором есть один слой (пиксельный — например, фотография). Давайте быстро пробежимся по всему, что мы вообще можем сделать с этим слоем (простите за обилие английского, так понятнее):
изменить его свойства (название, цвет в списке слоев, lock, и пр.)
применить к нему разные adjustments (которые в основном водятся в меню Image), например, brightness, contrast, hue, saturation, black and white, invert, и пр.
также мы можем зайти в layer styles (иногда называемые эффектами — меню Layer > Layer style > Blending options) и добавить вещи типа drop shadow, stroke, outer glow, и пр.
применить разнообразные фильтры — blur, distort, noise и пр.
спрятать часть слоя с помощью маски.
спрятать часть слоя с помощью слоя ниже (clipping mask).
сменить тип слоя (например, rasterize type).
объединить слои в группы.
Все эти возможности возникли в Фотошопе не сразу. Их добавляли и добавляли год за годом. Возможно, вы начинаете догадываться, к чему я клоню! Все эти штуки имеют разные названия, работают по-разному, у них непохожие интерфейсы. Но в результате все они имеют одно и то же — они меняют слой.
Вот еще интересный момент. Некоторые из вышеперечисленных функций меняют содержимое слоя напрямую — это необратимое изменение (я имею в виду не undo, а вообще концепцию). Именно с таких простых функций начиналась индустрия цифровой обработки — никому еще не было дела до обратимости изменений (да и железо было не такое мощное). Другие же функции делают обратимые изменения (как бы «накладываясь» поверх слоя). Это, например, layer styles или маски.
В недавних версиях Фотошоп пытается решить проблему необратимости обработки, добавляя к огромному числу своих функций еще несколько:
adjustment layers
smart objects
smart filters.
Знаете, я могу с гордостью заявить, что изучил много самых дальних уголков Фотошопа. Но вот это — «To enable re-editable smart filters, the selected layer will be converted into a smart object.» — это что вообще? Я так и не смог принять такой подход и начать с ним работать. Ау! Это жуткий хак, костыль, а не нормальное решение.
Если вы часто путешествуете и встречаете множество (прекрасных) людей, то вы замечаете — несмотря на очевидную разницу во внешности и даже поведении, «сущность» людей одинакова. Так и с Фотошопом! Все его такие разные функции в сущности делают одно и то же — меняют слой.
Эврика! Пусть любая функция будет слоем! Вырастим дерево слоев!
Ниже я возьму две идеи из Фотошопа и слеплю из них совсем новую, свежую идею!
Первая, конечно — слои. А вторая — clipping mask.
Предположим, вы работаете в программе обработки изображений под названием «Луковица» (ну, потому что в луковице есть слои!).
Вы закачиваете фотографию из камеры, и у появляется документ с одним слоем (с пиксельным содержимым). Допустим, мы хотим добавить немного обработки (скажем, контраст). Вместо того, чтобы применить некую функцию, вы добавляете слой «Контраст» как «слой-дитя» к слою с фотографией! Пока что звучит похоже на adjustment layers в Фотошопе, и отчасти так оно и есть. Но идея в другом — вообще все — это слои!
содержимое (пикселы, векторы, текст)
обработка (hue, saturation, levels, brightness)
bevel, stroke, shadow
noise, blur, sharpen
mask
И вся соль в том, что слои могут быть «дитя» и «родитель» (дерево, как папки для файлов!). Конечно, есть привычные слои верхнего уровня (технически, это слои-дети всего документа). Наподобие clipping mask в Фотошопе, когда вы создаете слой-дитя, его действие (содержимое или обработка) применяется только в пределах слоя-родителя.
Возможно, пока что это выглядит не очень впечатляюще, но если вы напряжете воображение и мысленно «поработаете» так некоторое время (я пробовал!), вы будете потрясены открывающимися возможностями. Навскидку -
есть слой с фотографией, к нему делаем слой-дитя sharpen, а к нему слой-дитя маску, и мы можем применить sharpen только к части фото.
есть векторный слой, добавляем слой-дитя stroke, а к нему пиксельный слой-дитя, и мы можем рисовать кисточкой только внутри линий stroke!
есть слой, добавляем слой-дитя маску, меняем opacity этого слоя — маска становится полупрозрачной.
давно мечтали о нескольких strokes к одному слою? Легко! Просто добавьте 2 подряд слоя-дитя strokes. Это относится и к любым другим слоям обработки.
можно группировать слои и работать с группой как со слоем — то есть добавлять любые слои-дитя!
конечно, любой слой можно прятать — что в Фотошопе прячется в: show/hide layer, enable/disable layer mask, show/hide layer styles, и пр.
конечно, любые наборы слоев можно дублировать или копировать в другие слои-родители. Никаких больше paste styles!
и конечно, все слои-дети можно «применить» («вклеить», merge) в слой-родитель.
Пара набросков (не забывайте — каждое действие — это слой, его можно спрятать или удалить):
Возможностям нет конца и края. Конечно, все это можно сделать прямо сейчас и в Фотошопе (я знаю как). Но нужны годы опыта, чтобы разобраться в сотнях терминов, и приучить себя разгадывать неинтересные головоломки — какой набор инструментов применять и в каком порядке в каждом конкретном случае.
Почему еще я верю, что это очень круто:
концепция очень простая как для понимания, так и для программирования. Как только вы понимаете концепцию дерева слоев, вы можете делать что угодно. С точки зрения разработчика, сделать такой редактор не сложнее, чем игру «Сапер» (ну, может, чуть сложнее). Собственно, интерфейс один — слои. Плагины? Назовем их слоями!
это идеальная модель обратимой обработки. Исходник всегда надежно укрыт.
это вам не DVORAK. Все уже имеют примерное представление о слоях (спасибо, Фотошоп!). Не будет болезенного переучивания, вроде перехода с QWERTY-клавиатуры на DVORAK. Дз-з-зен!
Время для кофе
Спасибо вам, что вы были так терпеливы и дочитали мою статью до конца. Я очень надеюсь, что она вдохновит вас и даст пищу для размышлений. Кто знает, может быть, один из вас использвует эти идеи как основу для разработки программы, которой предстоит стать новым стандартом в мире обработки изображений!