?

Log in

No account? Create an account
nyaload

Журнал Пушыстого

Журнал Пушыстого

Previous Entry Share Next Entry
Мой серый - это зелёный
nyaload
_winnie
Если нарисовать пикселями шахматную доску, то она у меня окрашивается в зеленый цвет прямоугольными пятнами, положение пятен зависит от взаимного расположения элементов на далеком расстоянии на экране на той же scanline. Если залить черно-белой решёткой весь экран - то он окрашивается в четко зелёный цвет примерно соответствующий rgb=#53b053
Кто-нибудь в курсе, как называется этот баг и можно ли его поправить в мониторе (ASUS PB287Q)? Фото под катом. update: похоже что это "технология улучшения картинки" называемая в меню монитора "sharpness", но отключить её для стандартного sRGB режима невозможно.

Наткнулся на него в ходе выяснения "какое же значение гаммы используется на моем мониторе при гамма-коррекции".

* однопиксельный checker board для проверки гамма-коррекции на мониторе использовать нельзя. Чередующиеся через один пикселы не дают такого же освещения, как крупные блоки, как из-за физическо-железных проблем (пикселы не успевает поменять освещение при быстром чередовании), так и из-за железно-софтварных - баги в пост-процесс софте внутри монитора, dithering, у меня наверное что-то из этого.

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

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



Фото монитора:


Фото вблизи, квадратные GBR пиксели, граница между белым, и зеленым которое должно быть серым



Шахматная доска из пикселей: http://dobrokot.ru/pics/i2016-01-23__17-03-53_2kb.png

Tags: ,


  • 1
Меня тоже удивляет, я даже проверил что формула смешения двух сервых цветов X и Y
((((X/255.0)**g + (Y/255.0)**g) / 2) ** (1.0/g)) * 255
соответствует цветам на картинке, но где ошибка - я так и не понял.


Win7 / AMD Radeon HD 7700 Series


Edited at 2016-01-24 01:55 pm (UTC)

может засада с ретиновостью как раз? Типа тесты рассчитаны что один пиксель это один пиксель, а тут один пиксель решетки на картинке это 4 пикселя монитора.

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

Ага, если картинку уменьшить, чтобы она точно в пиксели попадала, на правой становится уже ~2.2, на левой ~2.0

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

У меня по этим полоскам получилисть разные значения 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)




Edited at 2016-01-24 03:31 pm (UTC)

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

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

  • 1