Как работают цвета nes?


Nintendo Entertainment System (NES) была революционной консолью, когда она была выпущена в 1983 году. Благодаря своим 8-битным графическим и звуковым возможностям NES могла отображать игры с более сложными визуальными эффектами и звуком, чем предыдущие домашние консоли. Одним из ключей к улучшенной графике NES было использование специального чипа процессора изображений (PPU). Это позволило NES генерировать разнообразную палитру цветов и детализированную пиксельную графику. В этой статье мы подробно рассмотрим, как чип PPU NES генерировал цвета, а также ограничения и особенности цветовой палитры NES.

Блок обработки изображений NES

Разработанный Ricoh PPU NES был специализированным микропроцессором, предназначенным для генерации видеовыходов. Он работал совместно с основным ЦП 6502 для создания графики игры и отправки ее на экран телевизора пользователя.

Некоторые ключевые возможности NES PPU включают:

  • Поддержка отображения спрайтов — подвижных пиксельных объектов, таких как персонажи и бонусы.
  • Плиточные фоны, созданные из плиток размером 8?8 пикселей.
  • Общее разрешение экрана 256?240 пикселей.
  • Цветовая палитра из 48 цветов, до 25 из которых отображались на экране одновременно.

PPU содержал видеопамять (VRAM), в которой хранились графические данные, такие как узоры спрайтов и фоновые плитки. Умно организуя эти видеоданные и циклически переключаясь между палитрами, PPU мог генерировать подробную и красочную графику в рамках ограничений технологий 1980-х годов.

Цветовая палитра NES

Цветовая палитра NES — один из самых знаковых атрибутов консоли. NES могла генерировать в общей сложности 48 различных цветов. Только 25 из них могли быть отображены на одном телевизионном кадре.

Цвета были выбраны для обеспечения гибкости и минимизации визуальных артефактов на телевизионных экранах 1980-х годов. Вот полная палитра из 48 цветов NES:

#7C7C7C #0000FC #0000BC #4428BC
#940084 #A80020 #A81000 #881400
#503000 #007800 #006800 #005800
#004058 #000000 #000000 #000000
#BCBCBC #0078F8 #0058F8 #6844FC
#D800CC #E40058 #F83800 #E45C10
#AC7C00 #00B800 #00A800 #00A844
#008888 #000000 #000000 #000000
#FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
#000000 #000000 #000000 #000000

Как вы можете видеть, цветовая палитра NES в основном состоит из более темных, приглушенных тонов. Это было сделано для минимизации цветовых искажений и полос на телевизорах и радиочастотных разъемах 1980-х годов. Тем не менее, опытные программисты NES могли использовать гибкие палитры для создания привлекательной графики.

Ограничения цвета NES

Несмотря на свои инновации, NES по-прежнему была ограничена 8-битной цветовой графикой. На цвета NES было несколько ограничений:

  • На экране одновременно могло отображаться только 25 цветов из 48 основных цветов палитры.
  • Палитры спрайтов были еще более ограниченными. Спрайты NES размером 8?8 пикселей могли использовать только 4 цвета.
  • Атрибуты цвета назначались для каждой плитки или спрайта. Это означало, что соседние плитки/спрайты не могли плавно смешивать цвета.
  • PPU мог считывать только одну палитру за раз. Это могло привести к столкновению атрибутов, если им плохо управляли.

Программистам приходилось тщательно управлять ограничениями цветов NES. Но такие методы, как дизеринг и цикл дворцов, помогали им максимально использовать возможности.

Выбор палитры NES

Так как же игры NES выбирали эти экранные цвета из основной 48-цветовой палитры?

PPU NES использовал местоположение в памяти для определения цветов спрайтов и фона. Изменяя расположение видеоданных в VRAM, игра может эффективно менять палитру.

Расположение памяти Цвета палитры
$0000-$0FFF Палитра 0
$1000-$1FFF Палитра 1
$2000-$2FFF Палитра 2
$3000-$3FFF Палитра 3

Например, данные в диапазоне адресов $1000-$1FFF будут использовать палитру 1's colors. Адреса $3000-$3FFF будут использовать палитру 3.

Это давало играм 256 различных вариантов палитры для разнообразия цветов!

Цвета фона NES

Цвета фона NES определялись палитрами, назначенными каждой плитке:

  • Фоны создавались из плиток размером 8?8 пикселей.
  • Каждой плитке размером 8?8 можно было назначить одну из 4 доступных палитр.
  • Назначая соседним плиткам разные палитры, фон мог отображать до 25 цветов.

Тщательное расположение плиток позволяло фонам содержать несколько палитр. Но проблема столкновения атрибутов могла вызывать проблемы:

Столкновение атрибутов происходило, когда соседние плитки имели разные палитры. Обойти это помогли такие хитрые приемы программирования, как таблицы имен и зеркалирование.

Цвета спрайтов NES

Спрайты NES использовали похожую систему палитр, но имели больше ограничений по цвету:

  • Спрайты были движущимися элементами, такими как персонажи и бонусы.
  • Каждому спрайту 8?8 можно было назначить только одну из 4 доступных палитр.
  • Но в отличие от фонов, эти спрайты были ограничены теми же 4 цветами по всей палитре.

Таким образом, спрайт 8?8, использующий палитру 0, мог использовать только цвета 0-3 этой палитры. Это было строгим ограничением по сравнению с фонами.

Программисты использовали такие приемы, как наложение спрайтов и замена палитры, чтобы обойти ограничения. Но это потребовало усилий и креативности!

Популярные цветовые палитры NES

Многие классические игры NES творчески использовали цветовые палитры для создания отличительных визуальных стилей:

Игра Описание
Super Mario Bros. Использовалась теплая палитра 0 цветов для земли, холодная палитра 1 для подземных уровней.
Mega Man Назначена уникальная палитра для каждого уровня мастера роботов.
Castlevania Драматическая готическая палитра для соответствия теме ужасов.
Bubble Bobble Пастельная палитра соответствовала милым персонажам и тема.

Художники NES научились творить чудеса в рамках цветовых ограничений. Их опыт превратил ограничения в культовый графический дизайн.

Продвинутые цветовые приемы NES

По мере того, как разработчики осваивали систему, они открывали передовые цветовые приемы, которые еще больше раздвигали границы:

  • Сглаживание: смешивание пикселей для имитации цветов между значениями палитры.
  • Цикл: быстрая смена палитр для анимации цветов.
  • Затухание: постепенное увеличение интенсивности цвета для таких эффектов, как мигание.
  • Диффузия ошибок: стратегический выбор палитры для минимизации конфликта атрибутов.

Эти инновации позволили реализовать яркие эффекты огня и воды, прозрачность, тени и многое другое на скромном оборудовании NES!

Ограничения цвета в играх NES

Строгая цветовая система NES означала, что программистам приходилось проявлять креативность, чтобы обойти ограничения. Вот несколько примечательных примеров:

  • Использование только синей воды, потому что прозрачное значение синего цвета было повторно использовано для других спрайтов.
  • Мерцающие артефакты спрайтов, когда их появлялось слишком много на экране.
  • Проблемы видимости, когда спрайты смешивались с фоном похожего цвета.
  • Ограниченное разнообразие цветов в ранних играх до того, как были обнаружены передовые технологии.

Несмотря на свои причуды, цветовая палитра NES стала любимой частью идентичности системы. Разработчики игр научились принимать ограничения и использовать цвета стратегически для максимального эффекта. Ограничения даже способствовали появлению знаковых 8-битных графических стилей многих игр.

Заключение

Цветовая палитра NES является свидетельством артистизма и креативности, возможных даже в условиях жестких технических ограничений. Несмотря на ограничения 8-битной 48-цветной графикой, таланты художников и программистов NES по пикселям максимально использовали возможности. Их новаторские усилия расширили художественный потенциал ранних визуальных эффектов видеоигр.

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