Палитра (компьютерная графика)

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Глубина цвета
См. также

В компьютерной графике палитра — ограниченный набор цветов, доступный ранним графическим системам компьютера. Синоним: индексированные цвета.

Принцип действия

[править | править код]

Из широкого цветового пространства выбираются любые N цветов, и их координаты (обычно: R, G и B) хранятся в специальной таблице — палитре. Данные растровой графики, использующие палитру, представляют собой массив, где хранятся номера (индексы) цветов в палитре.

Палитровая графика позволяет совместить широкий цветовой охват изображения с невысоким расходом памяти.

Принцип хранения палитрового (цветного индексированного) изображения; перекрашивание с помощью замены палитры

Палитровые видеорежимы

[править | править код]
Рисунок в неправильной палитре — нередкая картина в 1990-е годы.

Палитровые режимы — видеорежимы, в которых каждый пиксель может принимать один из небольшого (от 2 до 256) количества цветов. Видеопамять в таких режимах делится на две части: таблицу цветов (палитру), которая содержит значения красного, зелёного и синего для каждого из цветов, и кадровый буфер, в котором для каждого пикселя хранится номер цвета в палитре.

Как правило, палитру можно изменять независимо от кадрового буфера. Если каким-то образом на экран попала картинка в неправильной палитре, возникает специфический видеоэффект.

Чтобы вывести на 256-цветный экран изображение, в котором более чем 256 цветов, требуется построить палитру, приближающую потребные цвета. Качественное построение 256-цветной палитры может занимать довольно много времени (до нескольких секунд на компьютерах того времени). Поэтому там, где требуется скорость (веб, игры, воспроизведение видео) палитра жёстко задаётся в графических данных, а не строится динамически.

Палитровые спецэффекты

[править | править код]

Тот факт, что палитру можно менять независимо от кадрового буфера, широко применяется в видеоиграх для получения очень быстрых спецэффектов. Вот (не исчерпывающий) список игр с подобными видеоэффектами.

  • Doom: вспышки экрана, когда герой подбирает предмет или ранен, а также изменение цвета изображения при пользовании скафандром.
  • Warcraft II: плеск воды. Интересно, что в редакторе Warcraft II плеск воды также реализован — разумеется, только в 256-цветных режимах.
  • Mortal Kombat: разноцветные ниндзя.

Также осветление-затемнение цвета в палитровых играх выполняется очень быстро (хоть и некачественно) с помощью таблиц замены цветов — в одну-две машинных команды на пиксель. В Doom с помощью замены цветов реализованы темнота, прибор ночного видения и неуязвимость; практически во всех стратегиях того времени (да и в том же Doom) — перекраска опознавательных знаков в цвет игрока. В truecolor эти же операции приходится делать покомпонентно, зачастую с дорогостоящим умножением, что требует намного больше процессорного времени.

Преимущества:

  • Малый расход памяти.
  • Быстрые палитровые спецэффекты.

Недостатки:

  • Неполный набор цветов.
  • Построение оптимальной палитры для полноцветного изображения может потребовать больших вычислительных ресурсов.

Палитровые файлы

[править | править код]

Палитровые или индексированные файлы — графические файлы, устроенные аналогичным образом. Как и в палитровых видеорежимах, заменой палитры можно перекрашивать объекты (например, в компьютерной игре встречаются автомобили шести цветов, при этом в файлах данных хранится одна картинка автомобиля с шестью палитрами). См. Цифровое изображение.

Палитровые видеорежимы практически не применяются с современными компьютерными мониторами. Тем не менее, палитровые графические файлы всё ещё активно используются.

Прозрачный цвет

[править | править код]

В палитровом файле один или несколько цветов могут быть сделаны прозрачными. При отрисовке таких файлов пиксели полностью прозрачного цвета не рисуются, и на их месте остаётся фон.

Графический формат PNG позволяет 8-битный альфа-канал в 8-битном изображении.

Примечания

[править | править код]
  1. Из-за особенности формата PNG — кадровый буфер сжимается, а палитра нет — небольшие файлы бывает выгодно делать truecolor. Но при увеличении габаритов картинки выигрыш пропадает.