Gigascreen — различия между версиями
Zxdn (обсуждение | вклад) |
Alone (обсуждение | вклад) |
||
(не показано 7 промежуточных версии 3 участников) | |||
Строка 1: | Строка 1: | ||
− | '''Gigascreen''' | + | '''Gigascreen''' — программный видеорежим для [[ZX Spectrum]], а также доработка, реализующая его аппаратно. С 1990-х годов используется в [[демо]]. Не следует путать с простым мерцанием двух экранов (2-color, Doublescreen), которое использовалось и раньше. |
− | Видеорежим реализуется путём переключения двух экранных областей | + | Видеорежим реализуется путём переключения двух экранных областей с началом каждого телевизионного кадра и каждой телевизионной строки. За счёт инертности зрения цвета в разных экранных областях будут суммироваться. Например, чередование жёлтого цвета в первом изображении и белого во втором, "на глаз" будет выглядеть как мерцающий ярко-жёлтый цвет, являющийся результатом суперпозиции двух цветовых компонент. Это позволяет получить из [[256x192|стандартной]] 15-цветной палитры 102 цвета (83 цвета при равенстве яркий+чёрный = два неярких) и использовать до четырёх цветов в знакоместе. |
− | + | На [[ZX Spectrum 128K]], в котором есть две экранных области, переключаемый программно изменением одного бита, достаточно раз в строку (в экранной области) переключать активный экран. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | Пониженное мерцание достигается переключением экранов каждую строчку, со сменой фазы каждый кадр, но при регулярной штриховке при этом получается неприятное визуальное расслоение. (Компромисс — переключение экранов приблизительно каждые 2 строчки, с фазой, плавно меняющейся от кадра к кадру. При этом изображение "течёт".) | |
− | + | По-видимому, впервые мерцание двух экранов с чередованием строк использовалось в демо [[Crazy Love]] ([[FunTop]] 98). Было поддержано в редакторе DoubleScreen Editor (DBS). | |
+ | |||
+ | Оригинальная железная доработка опубликована [[SchemeMan]]'ом в 1998 году. Включалась 4-м битом порта #[[eff7]]. Поддержана в газете [[IzhNews]]. | ||
+ | |||
+ | Для расчета цветов гигаскрина берутся следующие предпосылки: | ||
+ | * "вклад" каждой из половинок экрана оценивается в 50%, | ||
+ | * соответствующая компонента цвета каждой из половинок равна 66% (число условное) максимальной интенсивности видео для не-брайта и 100% для брайта. | ||
+ | Итоговая формула следующая: | ||
+ | |||
+ | C = (C0/3*2 + C0*I0/3 + C1/3*2 + C1*I1/3)/2, где | ||
+ | |||
+ | C0, C1 - соответствующий цвет (R, G, B) из экранки 0 и 1, принимающий значения 0 или 1, | ||
+ | |||
+ | I - брайт, 0 или 1. | ||
+ | |||
+ | C - результирующий цвет с интенсивностью в диапазоне 0-1, где 0 - нулевой уровень видео, 1 - максимальный. | ||
== Пример == | == Пример == |
Текущая версия на 14:06, 23 июля 2021
Gigascreen — программный видеорежим для ZX Spectrum, а также доработка, реализующая его аппаратно. С 1990-х годов используется в демо. Не следует путать с простым мерцанием двух экранов (2-color, Doublescreen), которое использовалось и раньше.
Видеорежим реализуется путём переключения двух экранных областей с началом каждого телевизионного кадра и каждой телевизионной строки. За счёт инертности зрения цвета в разных экранных областях будут суммироваться. Например, чередование жёлтого цвета в первом изображении и белого во втором, "на глаз" будет выглядеть как мерцающий ярко-жёлтый цвет, являющийся результатом суперпозиции двух цветовых компонент. Это позволяет получить из стандартной 15-цветной палитры 102 цвета (83 цвета при равенстве яркий+чёрный = два неярких) и использовать до четырёх цветов в знакоместе.
На ZX Spectrum 128K, в котором есть две экранных области, переключаемый программно изменением одного бита, достаточно раз в строку (в экранной области) переключать активный экран.
Пониженное мерцание достигается переключением экранов каждую строчку, со сменой фазы каждый кадр, но при регулярной штриховке при этом получается неприятное визуальное расслоение. (Компромисс — переключение экранов приблизительно каждые 2 строчки, с фазой, плавно меняющейся от кадра к кадру. При этом изображение "течёт".)
По-видимому, впервые мерцание двух экранов с чередованием строк использовалось в демо Crazy Love (FunTop 98). Было поддержано в редакторе DoubleScreen Editor (DBS).
Оригинальная железная доработка опубликована SchemeMan'ом в 1998 году. Включалась 4-м битом порта #eff7. Поддержана в газете IzhNews.
Для расчета цветов гигаскрина берутся следующие предпосылки:
- "вклад" каждой из половинок экрана оценивается в 50%,
- соответствующая компонента цвета каждой из половинок равна 66% (число условное) максимальной интенсивности видео для не-брайта и 100% для брайта.
Итоговая формула следующая:
C = (C0/3*2 + C0*I0/3 + C1/3*2 + C1*I1/3)/2, где
C0, C1 - соответствующий цвет (R, G, B) из экранки 0 и 1, принимающий значения 0 или 1,
I - брайт, 0 или 1.
C - результирующий цвет с интенсивностью в диапазоне 0-1, где 0 - нулевой уровень видео, 1 - максимальный.