Обновление: больше цвета!

Изначально на ZX Spectrum было всего 16 цветов, причём не каждую точку (пиксел) можно было покрасить в любой из этих 16 цветов. Это сильно экономило графическую память и общий размер программ. Но с развитием индустрии игр да и вычислительной техники вообще, разработчики задумались над тем, как простым способом увеличить красоту графики на Спекки. Можно ли это сделать?

Да, можно. Программно можно сделать несколько “финтов ушами”, чтобы позволить пикселям иметь больше “цветовой” свободы. К сожалению, в ущерб производительности. Вот несколько способов.

Мультиколор (Multicolor)

Как я уже писал выше, на спектруме есть ограничение по цветности точек – можно раскрашивать только зоны пикселей размером 8×8 (это называется “знакоместо”), задавая для них цвет “чернил” (INK) – светящиеся пикселы будут окрашены этим цветом и цвет “бумаги” (PAPER) – погашенные пиксели будут окрашены в этот цвет. Таким образом, в каждой области 8×8 пикселей можно иметь не более двух цветов. Однако, программисты выяснили, что если после прорисовки верхней линейки из 8 пикселей поменять INK и PAPER, то следующие 8 пикселей будут прорисованы с новыми значениями чернил и бумаги. Если быстро-быстро менять INK и PAPER, то можно получить в одной зоне 8×8 до 16 различных цветов. Это работает очень хорошо. Однако, на быструю смену значений “чернил” и “бумаги” уходит практически всё процессорное время, так, что динамичные игрушки таким образом не создать.

Для примера можете глянуть игру Buzzsaw+ и демку Satisfaction (седьмая по счёту часть со скроллирующейся картинкой слева).

В нашем эмуляторе эта функция заложена изначально, посему переходим к следующему приёму.

Гигаскрин (Gigascreen)

E20160224-055429[1]

Программисты выяснили, что если в одном кадре раскрашивать точку одним цветом, а в следующем кадре – другим цветом, то в результате наложения цветов при эффекте остаточного свечения люминофора получается третий цвет! В итоге при наложении таким образом всех комбинаций из 16 имеющихся цветов можем получить 102 новых цвета. Этот эффект требует небольших затрат процессорного времени, но в оригинальном спектруме имеет неприятное мерцание картинки, поэтому ранее нечасто использовался.

С приходом в мир Спектрума различных эмуляторов появилась возможность “склеивать” цвета соседних кадров без мерцания (noflic), что открыло горизонты для красочной многоцветной графики на ZX Spectrum – как статичной, так и внутри игр.

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

Некоторые игры:

  • Fire’n’Ice – прекрасная игра-паззл, в которой gigascreen используется в отображении начального меню.
  • WanderLust – в этой игре есть лабиринт и элементы викторины. Gigascreen в ней используется практически везде.
  • Wolfenstein 2004 – в этой игре Gigascreen используется в меню.

Некоторые демки:

Также специально для эффекта Gigascreen разработаны графические редакторы. Некоторые программы объединяют эффекты Gigascreen и Multicolor для получения Multigigascreen, что позволяет получать до 102 цветов в каждом блоке 8×2 пикселей. Вот примеры картинок, которые получены с помощью этого эффекта.

E20160224-052219[1]

E20160224-052407[1]

E20160224-052637[1]

Впечатляет? Вот тут есть ещё много подобных картинок.

На сегодня всё. Нам важно слышать ваше мнение, поэтому не стесняйтесь делиться мыслями. А также порекомендуйте статью вашим друзьям.

P.S. В статье использованы авторские работы:

  • Заглавная картинка – “female injection: from russia with love” by riskej ^ [simbols/retroworks/samar prod.] – работа заняла 1-е место на пати Raww.Orgy’2008
  • Первая картинка – “Pearl shell” by Flower – 5-е место на пати Di:Halt’2010
  • Вторая картинка – “Operation ThunderPig” by riskej ^ [simbols/retroworks/samar prod.] – работа заняла 9-е место на пати FOReVER’2010
  • Третья картинка – “Animeeshon” by riskej ^ [simbols/retroworks/samar prod.] – работа заняла 2-е место на пати Sundown’2009

 




Понравилась публикация? Поделись с друзьями

Поделиться
Subscribe
Уведомлять об
guest
0 комментариев
Inline Feedbacks
View all comments