Мой серый - это зелёный

Jan 23, 2016 13:51

Если нарисовать пикселями шахматную доску, то она у меня окрашивается в зеленый цвет прямоугольными пятнами, положение пятен зависит от взаимного расположения элементов на далеком расстоянии на экране на той же scanline. Если залить черно-белой решёткой весь экран - то он окрашивается в четко зелёный цвет примерно соответствующий rgb=#53b053 ( Read more... )

imaging, draw

Leave a comment

tonsky January 24 2016, 09:07:46 UTC
О, а у тебя же Windows? Расскажи, все норм работает? У меня Windows 10, nVidia, если включать 4k/60hz over DisplayPort, то раз в 10-20 секунд монитор моргает (Dell P2415Q). Если чуть ниже (30hz или разрешение меньше), то все идеально.

P.S. серая сетка серая во всех режимах (ползунок sharpness есть 0-100, по умолчанию стоит 50, дела особо не меняет). Как определять гамму по твоим картинкам я не понял.

Reply

_winnie January 24 2016, 13:08:07 UTC
Гамма меряется так - ищем тот квадрат, который при прищурировании сливается со своим фоном. Ещё раз напомню, что рисунок надо сильно увеличить, чтобы полоски были сильно толще пикселей.

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

Reply

tonsky January 24 2016, 13:50:58 UTC
А виндоус какой? И видюха?

При прищуривании 1.4 сливается. Мне кажется это какой-то неправильный тест.

Reply

_winnie January 24 2016, 13:55:02 UTC
Меня тоже удивляет, я даже проверил что формула смешения двух сервых цветов X и Y
((((X/255.0)**g + (Y/255.0)**g) / 2) ** (1.0/g)) * 255
соответствует цветам на картинке, но где ошибка - я так и не понял.

Win7 / AMD Radeon HD 7700 Series

Reply

tonsky January 24 2016, 14:07:22 UTC
может засада с ретиновостью как раз? Типа тесты рассчитаны что один пиксель это один пиксель, а тут один пиксель решетки на картинке это 4 пикселя монитора.

Вот тут например http://www.lagom.nl/lcd-test/gamma_calibration.php#gamma-test-2.png
я вижу ~1.3 в левой картинке, ~1.8 в правой. Системная гамма стоит в 2.2 (оно сейчас и на маках, и на виндах одинаковое)

Reply

tonsky January 24 2016, 14:10:02 UTC
Ага, если картинку уменьшить, чтобы она точно в пиксели попадала, на правой становится уже ~2.2, на левой ~2.0

Reply

_winnie January 24 2016, 15:29:42 UTC
Картинки прежде всего расчитаны на то, что свет от двух участков монитора с заданым значением складывается. и что у этих участков соответствует конкретному значению, заданом в картинке. Это теоретически должно быть верным и для тонких однопиксельных элементов, но это не так (так как браузеры ресайзят картинки непредсказуемым образом, и даже монитор может их портить.

У меня по этим полоскам получилисть разные значения 1.4, 1.6, 1.8 на мониторе, и точно так же на экране айфона.

Неясно, какая была математика при создании этих табличек.

Например, в первой полоске на уровне 2.2 смешиваются цвета 0 и 248, должно получится при g=2.2
((((0/255.0) ** g + (248/255.0)**g) / 2) ** (1/g)) * 255 = 181
а пипетка говорит про значение rgb=(175,176,175)


... )

Reply

_winnie January 24 2016, 16:08:45 UTC
Попробовал более точные формулы для перевода из sRGB в linear RGB, получилось примерно тоже самое, значение 182 при смешивании 0 и 248 ( https://gist.github.com/dobrokot/7c86c6c03d6e7d289143 )

Reply

wizzard0 January 25 2016, 11:06:53 UTC
Эти тесты надо ОБЯЗАТЕЛЬНО смотреть 1:1 потому что иначе получается непредсказуемое говно с 2 а то и 4 гамма-коррекциями в пайплайне (сэмплинг текстуры, ресайз, еще сэмплинг, блит...)

Reply

wizzard0 January 24 2016, 17:39:03 UTC
> то раз в 10-20 секунд монитор моргает
Поменяй кабель или, если не повезло, видяху; у нвидий такое встречал.

Reply


Leave a comment

Up