Gigascreen — различия между версиями
Zxdn (обсуждение | вклад) |
Zxdn (обсуждение | вклад) |
||
| Строка 1: | Строка 1: | ||
| − | '''Gigascreen''' (также '''Doublescreen''') | + | '''Gigascreen''' (также '''Doublescreen''') — программный видеорежим для [[ZX Spectrum]], а также доработка, реализующая его аппаратно. С середины 1990-х годов часто используется в [[демо]] и играх. |
| − | + | Видеорежим реализуется путём переключения двух экранных областей или областей атрибутов с началом каждого телевизионного кадра. За счёт инертности зрения цвета в разных экранных областях будут суммироваться. Например, чередование жёлтого цвета в первом изображении и белого во втором, "на глаз" будет выглядеть как ярко-жёлтый цвет, являющийся результатом суперпозиции двух цветовых компонент. Это позволяет получить из [[256x192|стандартной]] 15-цветной палитры 83 цвета: | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | Это позволяет | + | |
icol:array[0..82,0..2]of byte{r,g,b}=( | icol:array[0..82,0..2]of byte{r,g,b}=( | ||
| Строка 25: | Строка 21: | ||
(b0,b0,b0),(b1,b1,b1),(b2,b2,b2),(b3,b3,b3),(b4,b4,b4)); | (b0,b0,b0),(b1,b1,b1),(b2,b2,b2),(b3,b3,b3),(b4,b4,b4)); | ||
| − | Для [[ZX Spectrum]] | + | Для [[ZX Spectrum 48K]] использование полноэкранного Gigasreen возможно за счёт обновления атрибутной части экранной области памяти. На [[ZX Spectrum 128K]], в котором есть две экранных области, переключаемый программно изменением одного бита, достаточно раз в [[прерывания|прерывание]] переключать активный экран. |
| − | Пониженное мерцание достигается переключением экранов каждую строчку | + | Пониженное мерцание достигается переключением экранов каждую строчку, со сменой фазы каждый кадр, но при регулярной штриховке при этом получается неприятное визуальное расслоение. Компромисс — переключение экранов приблизительно каждые 2 строчки, с фазой, плавно меняющейся от кадра к кадру. При этом изображение "течёт". |
| − | + | ||
| − | + | ||
== Пример == | == Пример == | ||
| Строка 37: | Строка 31: | ||
|[[Изображение:Gigascreen_Result.gif|thumb|256px|Условный результат]] | |[[Изображение:Gigascreen_Result.gif|thumb|256px|Условный результат]] | ||
|} | |} | ||
| + | |||
| + | == См. также == | ||
| + | *[[Мультигигаскрин]] | ||
[[Категория:Видеорежимы]] | [[Категория:Видеорежимы]] | ||
Версия 04:12, 19 ноября 2009
Gigascreen (также Doublescreen) — программный видеорежим для ZX Spectrum, а также доработка, реализующая его аппаратно. С середины 1990-х годов часто используется в демо и играх.
Видеорежим реализуется путём переключения двух экранных областей или областей атрибутов с началом каждого телевизионного кадра. За счёт инертности зрения цвета в разных экранных областях будут суммироваться. Например, чередование жёлтого цвета в первом изображении и белого во втором, "на глаз" будет выглядеть как ярко-жёлтый цвет, являющийся результатом суперпозиции двух цветовых компонент. Это позволяет получить из стандартной 15-цветной палитры 83 цвета:
icol:array[0..82,0..2]of byte{r,g,b}=(
(b0,b1,b2),(b0,b2,b1),(b1,b0,b2),(b1,b2,b0),(b2,b0,b1),(b2,b1,b0),
(b0,b1,b3),(b0,b3,b1),(b1,b0,b3),(b1,b3,b0),(b3,b0,b1),(b3,b1,b0),{B}
(b0,b2,b3),(b0,b3,b2),(b2,b0,b3),(b2,b3,b0),(b3,b0,b2),(b3,b2,b0),{B}
(b0,b2,b4),(b0,b4,b2),(b2,b0,b4),(b2,b4,b0),(b4,b0,b2),(b4,b2,b0),{BB}
(b1,b2,b3),(b1,b3,b2),(b2,b1,b3),(b2,b3,b1),(b3,b1,b2),(b3,b2,b1),{B}
{014,124,234,034,134 нет}
(b0,b0,b1),(b0,b1,b0),(b1,b0,b0),(b0,b1,b1),(b1,b0,b1),(b1,b1,b0),
(b0,b0,b2),(b0,b2,b0),(b2,b0,b0),(b0,b2,b2),(b2,b0,b2),(b2,b2,b0),
(b0,b0,b3),(b0,b3,b0),(b3,b0,b0),(b0,b3,b3),(b3,b0,b3),(b3,b3,b0),{B}
(b0,b0,b4),(b0,b4,b0),(b4,b0,b0),(b0,b4,b4),(b4,b0,b4),(b4,b4,b0),{BB}
(b1,b1,b2),(b1,b2,b1),(b2,b1,b1),(b1,b2,b2),(b2,b1,b2),(b2,b2,b1),
(b1,b1,b3),(b1,b3,b1),(b3,b1,b1),(b1,b3,b3),(b3,b1,b3),(b3,b3,b1),{B}
(b2,b2,b3),(b2,b3,b2),(b3,b2,b2),(b2,b3,b3),(b3,b2,b3),(b3,b3,b2),{B}
(b2,b2,b4),(b2,b4,b2),(b4,b2,b2),(b2,b4,b4),(b4,b2,b4),(b4,b4,b2),{BB}
{14,34 нет}
(b0,b0,b0),(b1,b1,b1),(b2,b2,b2),(b3,b3,b3),(b4,b4,b4));
Для ZX Spectrum 48K использование полноэкранного Gigasreen возможно за счёт обновления атрибутной части экранной области памяти. На ZX Spectrum 128K, в котором есть две экранных области, переключаемый программно изменением одного бита, достаточно раз в прерывание переключать активный экран.
Пониженное мерцание достигается переключением экранов каждую строчку, со сменой фазы каждый кадр, но при регулярной штриховке при этом получается неприятное визуальное расслоение. Компромисс — переключение экранов приблизительно каждые 2 строчки, с фазой, плавно меняющейся от кадра к кадру. При этом изображение "течёт".


