Палитра Pentevo и sRGB.

Q&A
Хочу поднять любопытный вопрос. Как говорится, кто про что, а вшивый всё про sRGB и гамма-коррекцию.

На форуме TS-Labs, согласно описанию LessNick, палитра Pentevo складывается из четырех градаций одного из трех цветов.


Цвета из представленной таблицы показывают ровное деление на четыре равных отрезка:
0 — #00
33% — #60
67% — #AA
100% — #FF

Эта логика абсолютно верна, если мы работаем с линейным RGB пространством без гамма-коррекции. Могу нести полную чушь, но таковыми как раз были RGB-мониторы первой половины девяностых.
Проблема в том, что всё, что выводится на экран современных дисплеев, должно быть скорректировано под нелинейность яркости современных дисплеев. Если просто вывести на современный дисплей белый цвет яркостью #606060, то он не будет иметь 33% яркости, как это задумано в изначальной палитре, он будет темнее.

Теперь сами вопросы:
1. Прав ли изначально LessNick, правильное ли у него описание вопроса? Я в этом не разбираюсь абсолютно, хочется комментарий от кого-то, кто знает железо PentEvo.
2. Если подсоединить современный монитор через VGA вход, какой туда сигнал подаётся, с гамма-коррекцией или как на линейный RGB?
3. Однозначно требуется перепроверить эмуляторы. Эмулятор выводит изображение на sRGB-монитор, значит должен палитру подогнать под sRGB.

Градации яркости, скорректированные под sRGB:
0 — #00
33% — #A5
67% — #D5
100% — #FF

В Unreal 0.39.0 от deathsoft для ATM используются вот такие значения. Я ведь правильно понял, что это палитра Pentevo?
ATM=00,55,AA,E0,FF,80:100,00,00;00,100,00;00,00,100

Если скорректировать:
ATM=00,9C,D5,EB,FF,80:100,00,00;00,100,00;00,00,100

Если же я понимаю неправильно, и ATM — это не палитра для эмуляции PentEvo, то какая палитра там используется сейчас? В версии от TS-Labs такая же палитра в конфиге.

В общем, прошу меня перепроверить, не допустил ли я где ошибок, в том числе и в вычислениях. Возможно, именно в этом и есть причина, почему в эмуляторах палитра PentEvo такая темная. Если сделать коррекцию под нелинейную яркость современных девайсов, то картинка внезапно может стать очень даже удобоваримой. Правда, остаётся вопрос про использование современного sRGB-монитора и VGA-выхода на PentEvo, но здесь пусть лучше прокомментирует кто-то с матчастью.

30 комментариев

avatar
Есть такое мнение — возможно, его тоже стоит вынести в отдельное обсуждение.

Я ни на что не намекаю, но.

Ни у кого больше не возникало мысли отказаться от Пентевы как от компо-машины?
Я понимаю, что альтернатив ей немного; что на ней очень удобно показывать работы, что у неё очень много плюсов как у гибкой и универсальной компо-машины. Но может быть — может быть — имеет смысл рассмотреть другие варианты? В качестве показа графики, например. Или в качестве альтернативной машины для показа, по желанию автора. Потому что, выходит так, что, как бы прекрасен ни был этот компьютер, минусы у него тоже есть.

Что если, например, как-нибудь попробовать в качестве машины для показа, если уж нам всем так нужен реал, не взять +2, например?

Просто спрашиваю.
  • sq
  • +1
avatar
Я не организатор патей, но сразу возникает вопрос: как показывать демы с +2? Иметь отдельную машину под графику, а отдельную под демы — еще страннее, да и очень уж хрупкое это решение было бы.
avatar
Мне очень хочется сказать — «делайте демы под +2». Но пока не буду :))
  • sq
  • +1
avatar
Сколько людей посмотрят демо на живом +2 и сколько на живой пентеве? Имхо, от этого ответа и надо плясать.
avatar
Кстати, рискну предположить, что первых будет незначительно меньше.
avatar
Про компомашину +2 расскажи Денису, расскажи Краскам, расскажи ДеМаршу :)
avatar
Про компо-машину я, конечно, серьёзен был процентов на 20%. Но эти 20%, судя по всему, кому-то попали-таки под хвост )
  • sq
  • +2
avatar
Да, я заметил :)

Съешь еще этих тонких красных линий...
avatar
Om-nom-nom :)
avatar
Наверное было бы идеальным сделать +2 gray компо машиной с одной стороны.
Сейчас демы пишем под пентагон ибо он в россии стал компо машиной давно. А потом часто не хватает сил еще и под +2 по таймингам засинхривать. Если еще в mescaline synesthesia было время и силы, и эффекты сразу писались в 2х вариантах для пентагона и +2, то сейчас не этого времени и сил нет. фактически приходится писать две демы под две разные машины, хотя в некоторых эффектах достаточно поиграться константами но такие не все.
Но с другой стороны а много ли у нас +2 живых и как с эмуляторами дела обстоят — например записать видео так же удобно как в unreal?
avatar
Насколько я знаю, живых +2 у буржуев примерно как у нас Пентев в процентном соотношении среди владельцев реалов (знающие люди поправьте меня перед тем как поставить минус).

Эмуляторы есть, и отличные — SpecEmu, Spin, ZXMAK2, даже Spectaculator — в нём кстати можно легко записать видео (правда со звуком в моно). В общем, Пентева, конечно, машина отличная и местами незаменимая. Но если уж вам хочется ДУХА и КАНОНА, то не надо идти на компромиссы с самим собой: каноничнее, чем серый +2 не найти.
  • sq
  • +2
avatar
Я надеюсь, что ты понимаешь, что я помянул вас полушутя, ни на что не намекая?

Я лично для себя поставил во главу угла совместимость с классикой и всегда её обеспечиваю, в частности, просто никогда не пишу эффекты в которых заведомо уверен, что фикс под классику не получится. Но моё отношение к пентагон-сцене немного сложнее. С одной стороны, мне иногда хочется, чтобы демо Красок или Сибкрю смотрелись и за границей, там где пентагоны встречаются, но не являются стандартом. С другой стороны, наследие отечественной пентагоновской демосцены 1990х такое, что, как мне кажется, пентагон более чем заслужил своё место под солнцем. Поэтому даже если я и подтруниваю иногда над Красками и Сибкрю по этому поводу, я ни в коем случае не хотел бы создать впечатление, что это как-то приумаляет их достижения.
avatar
у нас таки есть пара дем под классику ;)
avatar
Извини, не вспомнил!
avatar
Даже если я фикшу под классику их всё равно никто за границей не смотрит, поэтому я перестал заниматься фигнёй. Более того, наша самая популярная на поуете дема Pentagon Only. Возможно это не работает только с нашими, но я для себя решил что демо-пентагон, игры — классика, а потом если повезёт то и пентагон.
avatar
На классике беда со звуком ещё на многих моделях.Без мождинга там искажения, моно и прочая хрень от которой даже у меня уши отваливаются, ещё и раскладка по каналам другая. Эволюшн имеет VGA на борту и даже умеет классику, а +2 пентеву не умеет. Выбор кажется очевиден.
avatar
1. Это действительно была ошибка, но я не знаю чья. Менять напряжения линейно очень неумно, так как подразумевает гамму 1.0, в природе не существующую. По-хорошему лвд должен был делать ступени исходя из гаммы 2.3-2.5. Но вполне возможно что в тот момент они пошли на поводу у совместимости с палитрой АТМ.

2. Как линейный RGB.

3. Эмулятор не должен заниматься корректировкой гаммы, это задача твоей графической карты.

Твое предположение про старые RGB мониторы с линейным цветом практически наверняка неверное. Нелинейная яркость — это фича электронно лучевых трубок. В sRGB прописана гамма 2.3, но в телестандарте PAL гамма 2.5, но старые телевизоры имели иногда даже 2.8.
avatar
1. То есть, ты хочешь сказать, что изображение с пентевы не только на современном железе не показывает 33%/66% яркости, но и вообще везде? Или на каких-то дисплеях оно всё же работает, как задумано?

2. Если так, то прискорбно. Получается, что на современных дисплеях картинка переконтрастная, темные оттенки очень сильно темнее, чем надо.

3. Если эмулятор хочет показать 50% яркости в sRGB пространстве, то ему надо сгенерить не #808080, а #BCBCBC. Иначе на экране будет не 50% яркости, а 21%. То есть, конкретные hex-значения на картинку надо подготавливать не такие же, как для линейного RGB, а скорректированные. Доказать это очень просто на практике: 50% яркости цвет должен визуально совпадать с шахматной текстурой по яркости. #BCBCBC совпадает хорошо, #808080 не совпадает.

Поэтому я уверен, что, если требуется показать реально ту же картинку для глаз, что и в условном «реале», то эмулятор должен делать картинку с учетом коррекции, а не в тех же значениях, что и в линейном RGB.

Та же самая беда у Sam Coupe. Почему у него такая странная палитра?

А всё потому, что кто-то взял значения линейного RGB из описания железа и просто их поставил в эмулятор, который работает с другим цветом пространством. Не учел коррекции, то есть. И теперь палитра слишком контрастная, и под неё уже нарисованы вполне определенные работы, которые в палитре, скорректированной под задумку разработчиков Sam Coupe, смотрятся не очень круто.
avatar
Дима, всё ещё хуже. Я совсем не уверен, что многие люди делавшие клоны типа АТМ всерьёз задумывались о гамме. Про Sam Coupe не знаю, но допускаю что вполне может быть та же фигня. История компьютинга допускает.

Т.е. ты переживаешь что палитра не та, а на самом деле палитра запросто может быть та. Просто разработчики не задумались о гамме.
avatar
И, да, картинки в палитре ATM часто выглядят плохо. Потому что палитра плохая. А плохая она — вот как раз из-за этого.

Т.е., то, что белый с bright 0 на спектруме — не 128 — это удача. Нам повезло, авторы спектрума о гамме знали.
avatar
Согласен, про разработчиков.
Вообще все старые палитры, с небольшим количеством цветов, мягко говоря странные. Одна палитра Commodore64 чего стоит.
avatar
В случае с Коммодором, кстати, имеются объективные причины. Чип коммодора работает не в RGB, как мы привыкли, а в другом цветовом пространстве — HSL (hue, saturation, luminance). «Круглые» значения цвета в HSL переводятся в довольно странные значения RGB.

Хотя, как пишут сами разработчики Коммодора, в итоге всё всё равно сводится к экономии копеек на итоговой железке: «I'm afraid that not nearly as much effort went into the color selection as you think. Since we had total control over hue, saturation and luminance, we picked colors that we liked. In order to save space on the chip, though, many of the colors were simply the opposite side of the color wheel from ones that we picked. This allowed us to reuse the existing resistor values, rather than having a completely unique set for each color.»
avatar
Согласен. Если оно так вообще на любом оборудовании показывается, то эмулятору незачем исправлять со своей стороны то, что и на реальных дисплеях выглядит так же.
avatar
Блин! ты мёртвого уконтрапупищь! Поднял тему 6-летней давности. Если бы полистал дальше, то увидел бы пост. Где был задан вопрос LVD, но так и не получено подтверждение правильности или ошибочности расчётов:



Кроме того, даже если расчёты верны, всегда остаётся вариант погрешности как самих резисторов, так и вариант когда ставили резисторы близкого по значению номинала. Я уж молчу про вариант, когда банально на том же ящике могли выкрутить насыщенность и контрастность. И это тоже очень сильно влияет на итоговую картинку.
avatar
В том-то и дело, что ответа не было. Я сам в железе полный нуль, я не могу прокомментировать твои расчеты. Всё звучит логично, но у меня нет образования/опыта, чтобы быть уверенным, что ничего не упущено, для меня это немножко черный ящик.
Про выкрученную насыщенность/контрастность мне неинтересно, моя задача — выдавать на своём уровне правильную картинку, а что там дальше юзер будет крутить, это вне моей ответственности.
avatar
>>моя задача — выдавать на своём уровне правильную картинку

Ну ты серьёзно? разница между #50 и #55 еле заметна:

avatar
упс! не #55, а #5d ну да, ну да…

avatar
Да, я серьёзно.
avatar
Ну тогда «Ваш ответ 42»
avatar
В соседнем топике обсуждали плюсы и минусы оцифровки вместо реале. Смотрите, а если цифровать гигаскриновые картинки в видео на 60 герц и показывать с PC, это решит проблему мерцания?

Вопрос показа дем и интр останется открытым все равно, но может графику тогда покажем как нужно?

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