Смена палитры
Путь от двух чёрно-белых цветов к 16 миллионам «истинных» был долог.
- Atari 2600 (1977) даёт два цвета на строку фона из 128 возможных, плюс два одноцветных спрайта.
- Sinclair ZX Spectrum (1982): два цвета на знакоместо (оба яркие или оба тусклые) из 15 возможных (и в ярком, и в тусклом варианте 000 — чёрный).
- Nintendo Famicom = NES = Dendy (1983): 52 цвета, при этом в каждой плитке 8×8 могут быть три цвета и общий для всего экрана фоновый, в каждом спрайте — три и прозрачность.
- MSX2 (японский отраслевой стандарт, такие компьютеры выпускали Yamaha, Philips, Sony и другие, 1985): 16 цветов из 512 возможных.
- IBM VGA (1989): 256 цветов из 262 тыс.
- В начале 90-х на настольные машины стали проникать адаптеры SuperVGA, дававшие 640×480×65k и больше. Честные 65 тысяч цветов, с 5 битами на красный и синий, и с 6 битами на зелёный.
Что означает «M цветов из N возможных»? Запоминаем в какой-то таблице (палитре) R, G и B для каждого из M цветов. В кадровом буфере хранятся не R, не G и не B, а номер цвета — 1-й, 2-й и так далее.
А теперь внимание! Что будет, если в палитре поменять цвет номер 3? Это значит, всё, что было 3-го цвета, перекрасится! Грубо говоря, посылаем в порт пару байтов — и получаем масштабную перекраску всего на экране, при мизерном расходе ресурсов шины.
Разумеется, это не могло не заинтересовать игроделов. Так, например, делали всякие вспышки экрана и эффекты отравления. Удачно подменив палитру, можно небольшими силами создать иллюзию богатой игры. Уже на первых машинах встречаются одинаковые спрайты разных цветов. Например, в Super Mario Bros. кустик и верхушка облака — одна и та же плитка, но разных цветов.
Бывает и другой вид смены палитры: на лету заменяем 3, например, на 23 — и всё, что было 3-го цвета, станет 23-го. Несчастных 256 байтов на таблицу подмены. Это практиковалось в Mortal Kombat (скажем, 64 цвета на первого бойца, и ещё 64 — на второго), в Doom и во всех стратегиях (чтобы рисовать опознавательные знаки).
Именно по причине лёгкой смены палитры в играх надолго задержались 8-битные цвета: StarCraft (1998), Grand Prix 3 (2000 — правда, только в программном рендеринге).
Заметим, что пока домашние компьютеры и приставки расширяли графическую палитру плитками и знакоместами, деловые не пользовались этими дешёвыми трюками. IBM CGA (1981) имел 320×200×4 (да-да, всего четыре цвета, потому ниндзя в Saboteur II был красный, иначе никак не передашь ночь) и 640×200×2, зато никаких конфликтных зон. Macintosh (1984) был только монохромным, 512×342×2.
И сейчас экономят работу художника, перекрашивая одно в другое. Если цветов единицы, делают копии атласа или текстуры. Если сколько угодно — идут на разные ухищрения (рисование-то сейчас аппаратное). Так, палитровые PNG состоят из несжатой палитры и сжатых данных, и если в памяти есть место на ту и другую разжатую картинку, можно построить два PNG с разными палитрами и загрузить тот и другой. А если памяти нет — пишут хитрые шейдеры.
Для чего?[править]
- Палитровые спецэффекты: вспышки экрана, удары, эффекты отравления… (практически игры того времени).
- Регулировка яркости, имитация освещения (практически все 256-цветные шутеры начиная с Doom).
- Приспособить монстров или постройки к ландшафту: например, пещерная обезьяна будет чернее обычной.
- Ранги монстров (простой, тяжёлый и командир). Или даже без рангов, просто для разнообразия (Golden Axe).
- Опознавательные знаки (практически все стратегии, гонки и сетевые шутеры того времени).
- Экономия спрайтов (практически все файтинги и CRPG того времени).
Интересные примеры[править]
- Разумеется, можно включать и современные игры, где кто-то — перекрашенная версия кого-то. Но поскольку этого добра завались, пишите только самое интересное!
- И не путать с постфильтрами, когда на весь отрендеренный экран накладывается какой-то эффект.
- TMNT: Manhattan Project — плещущаяся вода в канализации.
- Chip’n’Dale Rescue Rangers 2 — один из боссов — кран с ядром. Движение гусениц — смена палитры.
- WarCraft II — плещущееся море — это смена палитры! А на Новый год в церкви поставили ёлку, а гоблин-алхимик устроил иллюминацию.
- WarCraft III — подвиды большинства мобов имеют не перекрашенные текстуры, а лишь с изменённым соотношением красного, синего и зелёного.
- Mortal Kombat — разноцветные ниндзя, боевые девушки и роботы с одинаковыми спрайтами. Точнее, с частично одинаковыми — суперудары у них разные.
- Перекрашивались и обычные бойцы, если оба игрока выбирали одинаковых. Причём здесь одинаковость ниндзя играла злую шутку — перекрасить надо так, чтобы он не путался ни с противником, ни с другими ниндзя. В итоге получались бои «зелёный против салатового» или «ярко-красный против бледно-красного».
- В других файтингах смена палитры в основном используется для «зеркальных» матчей, хотя для одного бойца обычно доступно куда больше двух «раскрасок» — так, красоты ради (ну или для отсылочек). В Skullgirls, например, у некоторых персонажей в альтернативных палитрах добавляются аксессуары, невидимые в стандартной палитре (например, у Парасоул добавляются очки, перчатки, чулки разной длины, водолазка превращается в свитер), а у Дабл есть палитра, в реальном времени переливающаяся всеми цветами радуги.
- Телефонные версии Silent Hill — и без того JAR полмегабайта — на грани тогдашних телефонов. Вместо двух миров там один, но в разных палитрах.
- Doom — красный Барон Ада и бежевый Рыцарь Ада. А также разноцветные морпехи в кооперативе и мультиплеере.
- Различные игры на движке Build, в которых встречались несколько вариантов одного и того же врага, перекрашивали варианты именно сменой палитры с «дефолтного» голубого цвета (именно голубые спрайты хранятся в файлах игры) на нужный. Те части спрайта, которые не были голубыми, не перекрашивались (например, лицо или руки противника).
- Witchhaven — разноцветные гоблины не различаются по характеристикам, зато будут сражаться не только с главгероем, но и с гоблинами других цветов.
- Duke Nukem 3D — штурмовик и капитан штурмовиков — зелёная и красная жилетки. В дополнении Duke Caribbean: Life's a Beach хряки-туристы (местный аналог хряков-полицейских) были в весёленьких рубашках всех цветов радуги, но по характеристикам не различались. А ещё именно сменой палитры реализовывался эффект очков ночного видения.
- Redneck Rampage — различные инопланетянки и их королева различаются по цветам одежды и волос (редкий случай: смена палитры двух разных частей спрайта).
- Blood — культист, фанатик и (в дополнении) аколит и тесла-культист различаются цветом балахонов (коричневый, черный, зеленый и синий соответственно). Эта версия движка Build уникальна тем, что дефолтный перекрашиваемый цвет в ней не голубой, а коричневый.
- Shadow Warrior — различные ниндзя (простой ниндзя, ракетчик, гранатометчик, самонаводчик и невидимка) различались цветом штанов (коричневые, красные, серые, оранжевые и зелёные соответственно). Эффект невидимости у невидимки также получался путем смены палитры на полностью чёрный силуэт и добавления 75 % прозрачности.
- Во всех этих играх игроки в мультиплеере также различались сменой палитры спрайта главгероя.
- Pokemon — блестящие покемоны. Несмотря на то, что отличаются от обычных только цветом и искрящимся эффектом при входе в битву, имеют безумно редкий шанс на появление и являются объектом коллекционирования самых увлечённых игроков. Одни блестящие покемоны лишь слегка отличаются оттенком от обычных, а другие перекрашены полностью, и зачастую довольно вырвиглазно.
- Mad Max (2015) — лидеры крепостей бандитов натурально отличаются друг от друга только цветом. В наши то дни…