PDA

Просмотр полной версии : Сколько цветов у Speccy?



Conan
21.03.2005, 12:42
Скажете глупый вопрос? Тогда что из следующих вариантов есть наиболее точное определение:


16 цветов
15 цветов
8 цветов и две градации яркости
7 цветов и две градации яркости плюс черный


А можно ли считать за дополнительные цвета, например, мультиколоры? Аппаратные и (или) программные?

rg_software
21.03.2005, 13:46
Хороший вопрос :) При такой постановке, наверно, 16... хотя, конечно, яркость применяется сразу ко всему знакоместу, но это вопрос разрешения, а не цвета...

Кстати, вопрос навстречу -- а чёрный с повышенной яркостью хоть как-нибудь визуально отличается от "просто чёрного"?

PheeL
21.03.2005, 13:56
Я бы не стал считать мультиколор за доп. цвета. Хотя ими можно делать черезстрочные цветовые "смеси" (см. картинки с MSX в конце EYEACHE2), но по-сути это стандартные цвета только с большим разрешением по-вертикали. А вот FlashColor и GigaScreen - это самые натуральные доп. цвета, достигающиеся программно (переключения экранов) или аппаратно (смешивание сигналов).

ice'di^triumph
21.03.2005, 14:55
У мну на реале 8 цветов. :) Монитор сапака яркость не показывает...

Conan
21.03.2005, 15:06
Хороший вопрос :) При такой постановке, наверно, 16... хотя, конечно, яркость применяется сразу ко всему знакоместу, но это вопрос разрешения, а не цвета...
Цветовое разрешение, это немного другое. Для простоты можно рассматривать один пиксель изображения (сколько у него цветов).



Кстати, вопрос навстречу -- а чёрный с повышенной яркостью хоть как-нибудь визуально отличается от "просто чёрного"?
В правильно реализованных клонах «повышенной яркости» черного цвета не было (в оригинале тоже).



Я бы не стал считать мультиколор за доп. цвета. Хотя ими можно делать черезстрочные цветовые "смеси" (см. картинки с MSX в конце EYEACHE2), но по-сути это стандартные цвета только с большим разрешением по-вертикали. А вот FlashColor и GigaScreen - это самые натуральные доп. цвета, достигающиеся программно (переключения экранов) или аппаратно (смешивание сигналов).
О.К. Что бы не запутаться в «наворотах» давайте рассмотрим стандартный Speccy 128, без дополнительных аппаратных расширений.



P.S. поломанные компьютеры и мониторы это другой вопрос, речь о рабочих.

Shadow Maker
21.03.2005, 15:20
7 цветов и две градации яркости плюс черный

Ибо я ни разу не видел, чтобы черный был светлый и темный...

dwt
21.03.2005, 15:46
У меня на Спектруме (с EGA-монитором) собрана специально схема подавления яркого черного папера, так как некрасиво смотрятся картинки (даже старые, поэтому это, по-видимому, было учтено и на оригинал-Спектрумах). Очевидно, что на черном фоне яркий ink. На остальных паперах - яркий папер. Это видно даже из кодировки цвета: бит яркости является определяющим на весь цвет.

GriV
21.03.2005, 15:59
то цветом можно назвать уникальное воздействие на зрительные рецепторы глаза человека.
Т.к. все из указанных явлений воздействую по разному, то их можно назвать цветом.
С этой же точки зрения можно различать мультиколорный цвет от стандартного цвета. Аналогично для GigaScreen и 3Color screen.

PheeL
21.03.2005, 16:07
С этой же точки зрения можно различать мультиколорный цвет от стандартного цвета
Нет мультиколорного цвета! Мультиколор - это просто "поджатые" по вертикали стандартные цвета. А вот если начать щёлкать экранами с двумя мультиколорными картинками на них... то тогда это выходит уже как multicolor+gigascreen.

Мой ответ как у Shadow Maker'a - 7 цветов и две градации яркости плюс черный.

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

Conan
21.03.2005, 16:24
У меня на Спектруме (с EGA-монитором) собрана специально схема подавления яркого черного папера, так как некрасиво смотрятся картинки (даже старые, поэтому это, по-видимому, было учтено и на оригинал-Спектрумах). Очевидно, что на черном фоне яркий ink. На остальных паперах - яркий папер. Это видно даже из кодировки цвета: бит яркости является определяющим на весь цвет.
Отсутствие повышенной яркости у «черного», это очевидный факт, начиная с первых фирменных моделей ZX Spectrum. И вы правильно назвали причину: бит «повышенной яркости» один на цвет «чернил» и «бумаги». Если это не учитывать, то на черном фоне будет невозможно отображать изображения с повышенной яркостью, потому что фон будет светлеть. Но вопрос немного о другом.



Нет мультиколорного цвета! Мультиколор - это просто "поджатые" по вертикали стандартные цвета. А вот если начать щёлкать экранами с двумя мультиколорными картинками на них... то тогда это выходит уже как multicolor+gigascreen.
Каким образом классифицировать цвета на gigascreen и сколько их?



Мой ответ как у Shadow Maker'a - 7 цветов и две градации яркости плюс черный.
Тогда возникает вопрос, а правильно ли называть комбинацию «цвета + повышенной яркости» тем же цветом?

PheeL
21.03.2005, 17:02
Каким образом классифицировать цвета на gigascreen и сколько их?

Поскольку Gigascreen это на самом деле пересечения 2-х основных цветов, то примерно поучается (15*15)-1=224 цветов.


Тогда возникает вопрос, а правильно ли называть комбинацию «цвета + повышенной яркости» тем же цветом?
Фактически - неправильно. Это два разных цвета. Но из-за ограниченной Спектрумовской палитры теоретически можно и так выразится, но это будет полуправда.

Vladimir Kladov
21.03.2005, 17:50
яркость+цвет - это совсем другой цвет. По крайней мере рецепторы видят его совсем как другой цвет (если не дальтоник). Так что 15. Gigascreen-> 15x15 = 225. IMO.

PheeL
21.03.2005, 17:57
Gigascreen-> 15x15 = 225. IMO.
черный на черном - это минус один цвет.

Conan
21.03.2005, 18:05
черный на черном - это минус один цвет.
Возникает резонный вопрос, а разве другие комбинации одинаковых в gigascreen цветов будут давать какой-то новый цвет (синий + синий, например)?

PheeL
21.03.2005, 18:11
Возникает резонный вопрос, а разве другие комбинации одинаковых в gigascreen цветов будут давать какой-то новый цвет (синий + синий, например)?
Да. Это самый яркий синий. Т.е. как стандартный при одном экране, потому как все остальные комбинации будут давать другой цвет. Все-равно получается 224 цвета (включая стандартные)

Conan
21.03.2005, 18:17
Да. Это самый яркий синий. Т.е. как стандартный при одном экране, потому как все остальные комбинации будут давать другой цвет. Все-равно получается 224 цвета (включая стандартные)
Сорри, немного про другое: «красный + синий» будет отличаться от «синий + красный»?

PheeL
21.03.2005, 18:25
Сорри, немного про другое: «красный + синий» будет отличаться от «синий + красный»?
Хм... Да, не подумал. Отличий не будет. Надо правильно посчитать кол-во таких комбинаций и вычесть из общего числа (224) цветов.

diver
21.03.2005, 19:38
какие 224 цвета? вы что? матрица 15x15, диагональ+всё что под ней. т.е. (225-15)/2+15=120 цветов. да и то, если считать что цвета r,g,b, имеют одинаковый уровень сигнала, то получится ещё меньше т.к. некоторые разные пары будут давать в сумме один оттенок.

Conan
22.03.2005, 12:18
какие 224 цвета? вы что? матрица 15x15, диагональ+всё что под ней. т.е. (225-15)/2+15=120 цветов. да и то, если считать что цвета r,g,b, имеют одинаковый уровень сигнала, то получится ещё меньше т.к. некоторые разные пары будут давать в сумме один оттенок.
Вот это похоже на окончательное решение, хотя пришли к нему не сразу (может, кто и знал, но молчал долго). Итого:

ZX Spectrum 16/48 (и корректно реализованные клоны), имеет 15 цветов

ZX Spectrum 128 (и корректно реализованные клоны), имеет 15 цветов и позволяет получать, используя переключение основного/дополнительного экранов (Giga Screen) 105 цветов (включая 15 базовых).



Другие мнения есть?





P.S. Кстати режим Giga Screen стал возможен благодаря ошибке в аппаратной реализации ULA еще в первых ZX Spectrum 16/48. Ведь изначально планировалось, что в кадре будет 625 строк (две полукадра по 312,5), а реализовали ровно 624. В результате исчезла прогрессивная развертка (где каждый полукадр смещен относительно предыдущего на пол строки по вертикали) и мы получили то, что имеем: темные межстрочные пространства, неточные программные часы и… возможность искусственно получать дополнительные цвета (Giga Screen).

diver
22.03.2005, 13:54
Вот это похоже на окончательное решение, хотя пришли к нему не сразу (может, кто и знал, но молчал долго).
дык никто и не спрашивал особо :) палитру я рисовал уже давно, ещё в 2001 году, обсуждал её с SMT (2001 год) и AlCo (позднее, в 2003 г.).

насчет окончательности: c 15 цветами 48к спектрума не согласиться трудно, но с gigascreen сложнее.

вопрос на самом деле не так прост: не "сколько цветов", а "какие цвета" в gigascreen режиме. см. аттач: каковы реальные N и M (если К постоянно, то оно равно 2), правильна ли такая схема расчета?

от выбора величин N и M зависит, что ярче: С2 (gigascreen: 0+М) или N и сортировка gigascreen палитры.

Spectre
22.03.2005, 16:32
P.S. Кстати режим Giga Screen стал возможен благодаря ошибке в аппаратной реализации ULA еще в первых ZX Spectrum 16/48. Ведь изначально планировалось, что в кадре будет 625 строк (две полукадра по 312,5), а реализовали ровно 624. В результате исчезла прогрессивная развертка (где каждый полукадр смещен относительно предыдущего на пол строки по вертикали) и мы получили то, что имеем: темные межстрочные пространства, неточные программные часы и… возможность искусственно получать дополнительные цвета (Giga Screen).

Наверное имелась ввиду чересстрочная развертка?

Неужели действительно из-за глюка между строк черные полосы? Мне захотелось найти реальный спектрум и посмотреть. :) Если я правильно понял, это заметно при подключении через PAL кодер и незаметно при RGB подключении?

Vladimir Kladov
22.03.2005, 20:54
я помню, как выглядел экран на обычном цветном телевизоре. Некоторое приятное размытие точек имело место на одних, и практически не наблюдалось на других. Но никаких полос между строками не было. Наверное кодер действительно важен. На моем зеленом мониторчике тонкие полосы между строками - наблюдались, но очень тонкие. Просто люминсценция у экрана была слабая - монитор питался от 12V, потому и сами линии были очень тонкие. К сожалению, не могу сказать как выглядел гигаскрин, не видел. Цветов действительно должно получаться что-то чуть больше 100, это я неверно посчитал - со своей точки обозрения (меня-то интересовало просто заполнить таблицу 16х16, а сколько там разных цветов, оно вообще-то фиолетово, все равно в эмуле доступ по таблице на 256 входов). Опять же, динамика может давать дополнительный эффект изменения цвета по сравнению с формулой (M+N)/2, но вряд ли это сильно отличается от результата формулы. Возможно, эффект в эмуляторе передавался бы правильней, если вместо реального смешивания цветовых составляющих делалась шахматка с заполнением изображаемого пиксела поровну физическими пикселами от обоих смешиваемых цветов. Но это невыгодно для эффективности кода. Еще лучше было бы действительно менять строки на каждом кадре, но тогда на ПиСюковых мониторах (по крайней мере элт) из-за некратности частот 50Гц все поехало бы.

Conan
22.03.2005, 22:28
Наверное имелась ввиду чересстрочная развертка?

Неужели действительно из-за глюка между строк черные полосы? Мне захотелось найти реальный спектрум и посмотреть. :) Если я правильно понял, это заметно при подключении через PAL кодер и незаметно при RGB подключении?
Черезстрочная и прогрессивная развертки, это одно и то же. Если ее нет, то каждая строка, в каждом полукадре попадает точно в одно и то же место на экране (в фирменных ZX Spectrum и в клонах). "Черные полосы" (просветы между редких строчек) становятся при этом более заметными.


я помню, как выглядел экран на обычном цветном телевизоре. Некоторое приятное размытие точек имело место на одних, и практически не наблюдалось на других. Но никаких полос между строками не было. Наверное кодер действительно важен. На моем зеленом мониторчике тонкие полосы между строками - наблюдались, но очень тонкие. Просто люминсценция у экрана была слабая - монитор питался от 12V, потому и сами линии были очень тонкие.
PAL (или другая система кодирования цветности) тут не при чем, ибо она не вносит изменения в параметры развертки. Значение имеет фокусировка луча и разрешение кинескопа (экрана) телевизора и монитора. Полосы наиболее заметны на качественных мониторах, при пониженной яркости. А так же там, где картинка растянута по вертикали.



вопрос на самом деле не так прост: не "сколько цветов", а "какие цвета" в gigascreen режиме. см. аттач: каковы реальные N и M (если К постоянно, то оно равно 2), правильна ли такая схема расчета?
Очень похоже на правду - получается всего 63 цвета при смешивании (ибо смешивается 8 цветов с повышенной яркостью и 8 обычных минус черный), плюс 15 обычных (не смешанных) цветов минус общий черный. Итого 77 цветов. Будут другие мнения?

PheeL
22.03.2005, 22:44
Кстати, просьба Diver'у. Лёха, ты не мог бы сюда приаттачить полную цветовую карту GigaScreen'а? Ну или на мыло мне выслать. А то хотелось бы иметь представление о всех цветах и сделать из них себе палитру для фотошопа. Просто я не вполне уверен в своих способностях правильно смешать цвета для точного воспроизведения палитры GigaScreen'a, к тому же думаю и остальным будет интересно взглянуть на результат того, что можно выжать из старичка Спекки. Вобщем, онэгай дэсу ^_^

diver
23.03.2005, 06:38
Pheel, прямо сейчас не кину, ибо все мои наработки 2001-2002 года, которые я привез из армии на cd-rw крякнули вместе с этим диском, а скопировать я не успел. Заново нарисовать - легко, но только если K=const. На самом деле, Vladimir Kladov правильно замечает, что при сложении двух разных цветов K не равно двум, ибо должна иметь место а) инертность ЭЛТ трубы (точки гаснут не мгновенно) б) инертность восприятия глаза (после взгляда на яркий объект на сетчатке некоторое время остается пятно). Но учесть эти выверты физики лично мне не представляется возможным, поэтому я всегда рисовал палитру при K=const.

Вопрос к hardware экспертам: каково соотношение уровней сигналов BRIGHT=1 и BRIGHT=0?, т.е. величин N и М, например если N принять за единицу или 100%.
Повторюсь: от этого зависит расположение цветов в упорядоченной GS палитре.

зы люблю я всё усложнять ;)

diver
23.03.2005, 06:48
Очень похоже на правду - получается всего 63 цвета при смешивании (ибо смешивается 8 цветов с повышенной яркостью и 8 обычных минус черный), плюс 15 обычных (не смешанных) цветов минус общий черный. Итого 77 цветов. Будут другие мнения?
Conan, нет, не так. Ты говоришь, что цветов будет 8*8+15, а это не так. ты забыл про смешивание ярких+ярких, ведь у нас в 8 цветах не только RGB. дейстивтельно, будут выпадать яркий R + яркий B (=яркий MAGENTA) и т.п., но не выпадут яркий MAGENTA + яркий CYAN ;), ибо не парные компоненты цвета (R в MAGENTA и G в CYAN), после деления на K дадут другой оттенок. Аналогично с неяркими.

короче, я нарисую, увидите.

Spectre
23.03.2005, 12:10
Черезстрочная и прогрессивная развертки, это одно и то же. Если ее нет, то каждая строка, в каждом полукадре попадает точно в одно и то же место на экране (в фирменных ZX Spectrum и в клонах). "Черные полосы" (просветы между редких строчек) становятся при этом более заметными.

Это не одно и то же. Чересстрочная - это когда мы имеем 2 полукадра (в данном случае с частотой 25Гц) и выводим их поочередно: сначала один полукадр (выводим через одну строку), потом второй полукадр (опять через строку). Итоговая частота получится 50Гц. Чтобы не было расчетов откуда начинать второй полукадр, придумали изящное решение: каждый полукадр имеет не целое число строк (в нашем случае 312,5), а значит после вывода первого полукадра, второй "автоматически" будет выводится начиная с середины первой строки.

Прогрессивная развертка не имеет никаких полукадров. Все выводится "честными" кадрами с частотой (в нашем случае) 50Гц.

Если на спектруме действительно была ошибка в ULA, то через одну строку у него должны наблюдаться темные полосы.

moroz1999
23.03.2005, 13:20
хмм, не забывайте, что есть еще такой эффект в программном gigascreen:
если на одном знакоместе разместить синий+красный, а на соседнем красный+синий, то будет видна граница.

Conan
23.03.2005, 13:28
Это не одно и то же. Чересстрочная - это когда мы имеем 2 полукадра (в данном случае с частотой 25Гц) и выводим их поочередно: сначала один полукадр (выводим через одну строку), потом второй полукадр (опять через строку). Итоговая частота получится 50Гц. Чтобы не было расчетов откуда начинать второй полукадр, придумали изящное решение: каждый полукадр имеет не целое число строк (в нашем случае 312,5), а значит после вывода первого полукадра, второй "автоматически" будет выводится начиная с середины первой строки.

Прогрессивная развертка не имеет никаких полукадров. Все выводится "честными" кадрами с частотой (в нашем случае) 50Гц.

Если на спектруме действительно была ошибка в ULA, то через одну строку у него должны наблюдаться темные полосы.
Да, по поводу прогрессивной развертки я перепутал – имелась в виду чересстрочная, хотя практически во всех Speccy по факту используется именно прогрессивная.



А вот что касается темных полос, то у родного ZX Spectrum их не больше чем у любого клона. Ответом на этот вопрос является количество строк в полукадре:

ZX Spectrum – 312

«Пентагон 48/128» - 320

«Скорпион» - 312

и т.д.



То есть везде четное количество строк, а это означает, что никакой чересстрочной развертки на них нет, а есть прогрессивная. Ибо нет сдвига на половину строки в каждом полукадре. И наблюдаются те самые темные полосы, правда в зависимости от типа телевизора или монитора, их либо более заметно, либо менее.



По поводу недоделки в «родной» ULA:

Программные часы, встроенные в ZX Spectrum рассчитаны на 70 000 тактов, между прерываниями. Это и есть 312,5 строк по 224 такта, то есть изначально предполагалось, что будет использоваться чересстрочная развертка, иначе бы часы были рассчитаны на фактическое время (69888 тактов) и они не спешили бы на всех фирменных ZX Spectrum. Ну и как вы правильно заметили, визуально темные полосы не улучшают восприятие изображения.

PheeL
23.03.2005, 14:08
хмм, не забывайте, что есть еще такой эффект в программном gigascreen:
если на одном знакоместе разместить синий+красный, а на соседнем красный+синий, то будет видна граница.
Это такая чёрная пограничная вертикальная линия, да? Ну это тогда уже на художниках висит обход стороной данного эффекта, а может иногда им и пользоваться в своеобразных случаях (фактически тебе нахаляву ещё линию третьего цвета дают! :D ).

moroz1999
23.03.2005, 15:28
не-не-не:) мистическая линия - это вообще отдельный разговор.
здесь я говорю про такой эффект:
на первой картинке 2 знакоместа: синее и красное.
на второй картинке те же 2 знакоместа, но наоборот: красное и синее.
и если эти картинки софтварно переключать, то будет видна граница между двумя знакоместами.

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

dwt
23.03.2005, 15:37
не-не-не:) мистическая линия - это вообще отдельный разговор.
здесь я говорю про такой эффект:
на первой картинке 2 знакоместа: синее и красное.
на второй картинке те же 2 знакоместа, но наоборот: красное и синее.
и если эти картинки софтварно переключать, то будет видна граница между двумя знакоместами.

даже не обязательно знакоместа красить, можно и 2 пикселя взять.
цвета в результате вроде как одинаковые, но разницу в восприятии они дают, причем я вроде как даже видел использование в какой-то демке этого фифекта.
Это наш глаз так воспринимает. Ведь хоть цвета и сменяются быстро, но частота этой смены (1/25 сек.) недостаточно высока, чтобы "обмануть" наши глаза, поэтому и возникает этот эффект :(

PheeL
23.03.2005, 15:41
здесь я говорю про такой эффект:
на первой картинке 2 знакоместа: синее и красное.
на второй картинке те же 2 знакоместа, но наоборот: красное и синее.
и если эти картинки софтварно переключать, то будет видна граница между двумя знакоместами.
Прости, но на эмуляторе разницы в этом случае я не заметил. Специально проверил. Может виновата 100Гц развертка? ;) Хотя Vsync у меня был включен, соответственно он должен был "выбрасывать" каждый второй кадр, что есть честные 50Гц. Может дело еще в том что на телеке люминофор чуть медленнее гаснет и там от этого как-то зависит? Вобщем я озадачен. А вот линия меж. аттрибутами там как раз видна очень чётко.

moroz1999
23.03.2005, 16:02
Это наш глаз так воспринимает. Ведь хоть цвета и сменяются быстро, но частота этой смены (1/25 сек.) недостаточно высока, чтобы "обмануть" наши глаза, поэтому и возникает этот эффект :(
да, это действительно чисто оптический эффект.

Вобщем я озадачен.
Странно, очень странно, да скорее всего видел, просто не понял, о чем именно я говорю.

PheeL
23.03.2005, 18:32
Странно, очень странно, да скорее всего видел, просто не понял, о чем именно я говорю.
Тьфу ты... Я первый раз прочитал не "граница", а "разница". Невнимательность меня погубит. Ну вот про границу я как раз и говорил. Просто я её "линией" назвал. Граница присутствует, да. Это в принципе на обычных скринах заметно когда папер с инком с соседних знакоместах местами меняются. В BGE даже специальный плагин был который менял с папера на инк и обратно в таких случаях, чтобы не было видно границ.

Vladimir Kladov
23.03.2005, 19:52
насчет пограничных линий между C1+C2 и C2+C1. По-моему, это просто эффект некоторого несведения лучей, которое наблюдается практически у всех телевизоров и элт-мониторов. Даже на хороших мониторах на элементарном тесте - цветные прямоугольники R,G,B в шахматном порядке можно наблюдать, что несведение иногда превосходит по вличине 1 пиксел. Кстати, в эмуляторе эффект полосы можно было бы частично воспроизвести, если эмулировать гигаскрин именно шахматкой пикселов чистых цветов, а не смешиванием их по формуле. Вот только бы найти gigascrin-картинку, в которой этот эффект наблюдается/используется, для начала.

Conan
23.03.2005, 20:46
насчет пограничных линий между C1+C2 и C2+C1. По-моему, это просто эффект некоторого несведения лучей, которое наблюдается практически у всех телевизоров и элт-мониторов.
Несведение лучей, это статическая составляющая, причем, как правило, зависящая от места расположения объекта на экране кинескопа.

Эффект "пограничных линий" скорее вызван динамическими параметрами (разным временем включения и выключения видео-усилителей и/или схем формирования RGB в Speccy). Это может вызывать некоторое наложение границ разноцветных объектов в разных полукадрах.
Если это так, то даже при идеальном повторении разверки Speccy (50Гц), в эмуляторах на CRT-мониторах эффект будет менее заменен (или не заметен совсем), поскольку видео-усилители в них имеют более высокое быстродействие, чем в бытовых телевизорах. На LCD-мониторах эффекта не будет в принципе.

diver
23.03.2005, 21:15
т.е. никто не знает каково соотношение уровней сигнала BRIGHT=0 и BRIGHT=1?

Conan
23.03.2005, 23:22
Стандарта на эти уровни нет, каждый производитель (включая Sinclair Research и Amstrad) реализовывали их по-разному. А уж отечественные производители вообще были кто во что горазд. Пересмотрел десяток схем (от «Балтик» до «Пентагон 1024») и значения амплитуд оказались от 1/0,55 до 1/0,8 (яркий/обычный). Причем у одних и тех же моделей были разные варианты схем (и соотношений). У большинства отечественных клонов и ZX Spectrum + 2B (при подключении через RGB) соотношение больше ~1/0,6 (с запасом) в расчете на регулировку контрастности в телевизоре/мониторе. У фирменного ZX Spectrum субъективное соотношение около 1/0,7 я бы на этом и остановился. Либо нужно выбрать конкретный клон и исходить из его типовой (если повезет) схемы.

PheeL
23.03.2005, 23:34
У фирменного ZX Spectrum субъективное соотношение около 1/0,7 я бы на этом и остановился. Либо нужно выбрать конкретный клон и исходить из его типовой (если повезет) схемы.


А тут можно всего два варианта сделать - фирменный и пентагон 128. Этого будет абсолютно достаточно.

diver
24.03.2005, 04:59
Conan, спасибо! Именно этого я и боялся, что сигналы везде разные. Хотя.. если подумать, то уровень BRIGHT0 в пределах (0.5;1) сортировки цветов вроде бы не меняет. А оптимальный уровень = 2/3, т.к. в этом случае распределение цветов наиболее равномерно (см. таблицу, ideal spectrum). Уровни 0.6 и 0.7 наиболее близкие к идеальному, причем я бы не сказал, что какой-то более близок (см. разницу между цветами step в таблице).

Сегодня вечером нарисую все три варианта палитры.

Conan
25.03.2005, 15:35
Сегодня вечером нарисую все три варианта палитры.
Очень ждем... Инетесно все же цвета посчитать, хотя бы...

random
25.03.2005, 16:16
а в скорпионе что?

diver
25.03.2005, 23:17
Conan, 102 вышло.

1 - матрица 16 на 16
2 - выкидываем повторяющиеся цвета
3 - пробуем сортировать

Pheel, как лучше такую палитру упорядочить? в 6-угольник или по HSV спектру?

PheeL
25.03.2005, 23:31
Pheel, как лучше такую палитру упорядочить? в 6-угольник или по HSV спектру?
Эм... Как в последнем файле вложения :) Наиболее удобоваримый вариант. Спасибо за палитру!

Conan
26.03.2005, 00:05
Conan, 102 вышло.

1 - матрица 16 на 16
2 - выкидываем повторяющиеся цвета
3 - пробуем сортировать

Мне нравится третий вариант, вот только бы покрупнее. :smile: Спасибо diver!

P.S. У "Скорпионов" два варианта 0,8/1 (желтый) и 0,6/1 (зеленый).

Black_Cat
28.07.2006, 22:02
Граница присутствует, да. Это в принципе на обычных скринах заметно когда папер с инком с соседних знакоместах местами меняются.
Суть природы этой "загадочной" границы знает любой телемастер, и она не есть то, о чём здесь предполагалось в многочисленных версиях. Суть этого явления в том, что в плохих CRT мониторах с упрощённой конструкцией (особенно TV) при увеличении яркости засветки точки растра, часть электронов расходятся за пределы точки, что сродни расфокусировке, но динамической а не статической. В результате происходит засветка соседних точек, за счёт чего более яркая точка становится реально больше в диаметре. В случае яркого знакоместа - его границы начинают налезать на соседние знакоместа, т.е. возникает область перекрытия знакомест. Если рядом расположены 2 знакоместа с инверсными цветами, то при одновременном их мигании, они будут мигать почти всей площадью знакомест, за исключением области перекрытия, которая будет засвечена то одним знакоместом, то другим и в результате будет светиться всегда - вот она-то и образует эту "загадочную" границу. На качественных (не дешёвках) мониторах (современные SVGA например) в штатных режимах этого эффекта наблюдаться не будет, а в TFT мониторах этот эффект не возможен вообще. Поскольку к схемотехнике спека это не имеет никакого отношения, то и как-то учитывать этот эффект в эмулях бессмысленно.

Conan
29.07.2006, 11:31
Суть природы этой "загадочной" границы знает любой телемастер, и она не есть то, о чём здесь предполагалось в многочисленных версиях. Суть этого явления в том, что в плохих CRT мониторах с упрощённой конструкцией (особенно TV) при увеличении яркости засветки точки растра...
Видимо «любой телемастер» так же должен знать, что расфокусировка при изменении яркости не связана с «расползанием электронов» (вспомните что такое «маска» и зачем она). Изменение яркости изображения изменяет ток на втором аноде кинескопа, а поскольку напряжение на фокусирующем электроде формируется той же схемой (трансформатором и умножителем), оно так же меняется при изменении яркости. Покрутили яркость – поплыла фокусировка. А в старых телевизорах, где сигналы строчной развертки в этом же блоке формировались, еще и размер изображения менялся при изменении яркости экрана. Но в конкретном случае речь идет IMHO о динамическом эффекте:


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

Поскольку к схемотехнике спека это не имеет никакого отношения, то и как-то учитывать этот эффект в эмулях бессмысленно.Учитывать может и бессмысленно, а вот к схемотехнике Speccy, эффект может иметь прямое отношение: на одних и тех же мониторах (или телевизорах) у разных клонов могли возникать или отсутствовать полоски на границе знакомест.

Black_Cat
29.07.2006, 12:07
Но в конкретном случае речь идет IMHO о динамическом эффекте
Ну дык об этом и речь.

сродни расфокусировке, но динамической а не статической

вспомните что такое «маска» и зачем она
Справедливо для мониторов с хорошей схемотехникой.

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

fk0
31.07.2006, 13:13
Скажете глупый вопрос? Тогда что из следующих вариантов есть наиболее точное определение:


16 цветов
15 цветов
8 цветов и две градации яркости
7 цветов и две градации яркости плюс черный


А можно ли считать за дополнительные цвета, например, мультиколоры? Аппаратные и (или) программные?

Все варианты дурацкие. Надо брать число сочетаний в знакоместе с учётом
"двуколорных" картинок. Очевидно, что в статическом изображении имеется 15 различимых цветов. Ключевое слово РАЗЛИЧИМЫХ. Поэтому говорить о BRIGHT
смысла нет. И если я не ошибся, получается n!/k!(n-k)! цветов, где k=2, n=15,
итого порядка сотни цветов.

Conan
31.07.2006, 22:30
В главе семь из инструкции к фирменному ZX Spectrum (ZX Spectrum INTRODUCTION) сказано:
The ZX Spectrum has eight colours to play with, and these are given numbers
between 0 and 7. Although the colours look in random order, they do in tact give decreasing shades of grey on a monochrome TV.
Here is a list or them for reference; they are also written over the appropriate
number keys:
0 black
1 blue
2 red
3 purple or magenta
4 green
5 pale blue or cyan
6 yellow
7 white
«eight colour» это восемь цветов. Названия цветов приведены.
В большинстве отечественных клонов аппаратно реализована поддержка 15 цветов, а некоторых и 16 отображалось. Так что не так уж и «очевидно», про Bright – аналогично.

P.S. n!/k!(n-k)! цветов, где k=2, n=15, в итоге дает 105. У Diver-а вышло 102. Не бьются циферки, кто прав?

Lethargeek
31.07.2006, 23:01
P.S. n!/k!(n-k)! цветов, где k=2, n=15, в итоге дает 105. У Diver-а вышло 102. Не бьются циферки, кто прав?

102. Подсчитано вручную для верности. :p