Pull to refresh
137
-3.7
Андрей Дмитриев @AndreyDmitriev

Пользователь

Send message

У меня на немецкой Windows почему-то только прямой установился, а вот в наклонном что-то с кодировкой не то. Надо будет на досуге фонтографером глянуть, да поправить.

Да, он очень близок, я иногда, когда ностальгия пробивает, пользуюсь

Так и называется, Gost.

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

Как рядовой пользователь SAP, справедливости ради, не могу не отметить некоторую, мягко говоря, специфичность этого продукта, притом что я пользуюсь им эпизодически, занося часы работы по проектам, иногда смотрю наличие запчастей на складе, ну и когда релизы в прод уходят, мне надо туда занести обновления. Интерфейс — "привет из девяностых", многие вещи неинтуитивны и неочевидны, там надо знать как делается то-то и то-то, иначе без шансов. Чтобы зайти сюда, тыркните в "Р31", а тут введите вот этот магический номер. Навигация нездоровая. Чтобы посмотреть данные за позапрошлый месяц, выйдите отсюдя и перезайдите вот сюда, введя другую дату, и так далее. Найти там что-либо невозможно, если не знать где искать. Я, конечно, часть автоматизировал с autoit, но там реально есть что улучшить, просто с точки зрения фронтенда и юзабилити. С другой стороны, в компании, где я работаю, помимо меня трудятся ещё почти 60К человек, она раскидана по многим странам и континентам, бизнес процессы абсолютно разные, но при этом как-то оно работает, и я, глядя на это, плохо представляю себе безболезненный переход на другой продукт.

рендер в фбо с флоат текстурой и последуюшим тонмапом и выводом на обычный монитор

За кусочек рабочего кода моя благодарность вам не будет иметь границ в пределах разумного.

Я закончил эру таких мониторов на Mitsubishi Diamond Pro 22 дюйма, точную модель уже не помню. В соседнем офисе Barco стоял, и у него, кажется своя прприетарная видюха была.

Аналоговых выходов давно не видел, хотя есть переходники и конвертеры, но качество DAC там под вопросом.

C 12 бит, кстати, любопытно - цветные мониторы подключаются по Display Port, примерно как я написал, а вот чёрно-белые используют обычный DVI и берут информацию из цветных каналов. По четыре бита из каждого канала - и вот 4096 оттенков.

Аналогия с аудио немного не верна. Потому-то мы тут и спорим))

Верхний предел частоты слышимого звука давно известен и обсосан со всех сторон. 

Ну тут можно тоже подискутировать, призвать Котельникова с Найквистом и пойти на новый круг обсуждения...

Но если серьёзно, то я как-то предмета спора и не вижу, это же просто чисто технический пост о том, как можно получить десять бит, тут уж проще не бывает и мне кажется всё достаточно очевидно с технической стороны. Ну а уж "надо это или нет или там видно/не видно", мне кажется надо просто оставить в стороне. Эх, жаль у меня монитора понавороченней нет, типа RadiForce GX560, который не просто 10 бит, он 1024 градации из 14 бит палитры (точнее 16369 градаций) выбирает, либо GS520, который 12 бит и в 4096 одновременно отображаемых градаций умеет, да прецизионного измерительного прибора до кучи.

моя претензия к вашей статье?

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

Ведь всё что мы сделали - это просто переключились в десять бит, получили на экране чуть больше тысячи оттенков серого (ну или чуть больше миллиарда возможных цветов вместо 16 миллионов, если хотите). То, что ступеньки остаются (разница между соседними градациями), это очевидно, но то, что их высота (относительная яркость) стала вчетверо меньше - это тоже очевидно. Единственная фраза, к которой, вероятно, можно придраться это "эффект полос бандинга, хорошо видимый в восьмибитном окне действительно отсутствует при отображении в 10 бит." Ну давайте я заменю слово "отсутствует" на "визуально значительно уменьшился до состояния неразличимости на данном тестовом мониторе" и добавлю поясняющий график из коммента выше. Или вас что-то ещё смущает?

Повторю еще раз, у вас на интервале в 500 пикселей 9 градаций, то есть 50 пикселей на цвет, даже если вы сделаете 12, то ступенька останется. 

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

В реальности на экране вот что будет, если измерять интенсивность свечения пикселей:

Но неужели вы разницы между этими двумя графиками не видите?

Я честно говоря не очень понимаю суть спора. Речь лишь о том, что некоторые мониторы и графические адаптеры технически способны выводить 10 бит картинку, а не 8. Показана чисто техническая возможность, как этого добиться. Разница на том обрудовании, что есть у меня, — заметна. Если б её вообще не было — я бы честно написал.

Точно также есть возможность цифровать аудио с дискретизацией 44100 Гц/16 бит, а можно ведь и в 96 кГц/24 бит или даже 192кГц. Весь интернет тут же взрывается "это никому не нужно". Ну это-то тут причём, это же просто техническая возможность так сделать.

Давайте оставим вопросы субъективной практической применимости за кадром, каждый ведь может сам попробовать и так и сяк и для себя решить надо ли ему это или же нет.

Мы просто говорим тут о вещах, находящихся на грани восприятия. Давайте более строго подойдём к вопросу. Вот выше написали, что человеческий глаз способен различать различие интенсивности в доли кандел на кв. метр, это факт. Если я выставлю R G B на максимум, то белый из офисного монитора будет светить мне примерно 200 кд/м², ну а медицинский так и вообще под 400 кд/м², при этом в нашем распоряжении всего 256 градаций. Соответственно разница в одну градацию по трём каналам даст разницу интенсивности близкую к 1 кд/м², плюс минус. Это видно (хотя и не всем). Если это не беспокоит никак, то и говорить не о чем. Если же это явно видно на хорошем мониторе, то вот есть возможность перейти на 10 бит.

Это как с музыкой. Я люблю хороший звук (но не до такой степени, чтобы греть золотые провода). У меня был приличный комплект, потом я решил заменить усилитель на получше и не услышал практически никакой разницы, но потом заменил акустику и — вот оно, теперь разница между усилками стала очевидна.

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

нвидия выпускала несколько доков с разными вариантами включения этого режима, я вроде последнгюю версию нашёл. Я напрямую установить WGL_*_BITS_ARB не могу, потому эти дефайны в GLFW вообще неопределены, но внутри в библиотеке оно устанавливается где-то в wgl_context.c.

Возможно устанавливая их в максимум в 16 OpenGL при отображении сам выбирает максимально допустимую для данного железа битность.

Если я вот так поставлю, то оно тоже работает:

glfwWindowHint(GLFW_RED_BITS, 16);
glfwWindowHint(GLFW_GREEN_BITS, 16);
glfwWindowHint(GLFW_BLUE_BITS, 16);
glfwWindowHint(GLFW_ALPHA_BITS, 16);

Пиксел формат флоат быть в общем-то не обязан (хотя и float тоже работает, я когда не мог добиться результата, то думал, что дело в этом)

Да, конечно.Там, где я рисую геометрические фигуры в OpenGL, я и пользуюсь float, задавая цвет от 0 до 1.0f. С изображением тоже самое - можно в принципе нормировать его на диапазон 0...1, поместить его в float массив и работать с ним как float, надо только вот тут поправить:

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB10, ImageWidth, ImageHeight, 0, GL_RGB, GL_FLOAT, pixels);

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

Уже не уверен, надо сделать тест с текстом, отличным на одну градацию и пробежать в динамике по всему диапазону, выкрутив яркость на максимум. Но на градиентах я пока на 10 бит ступенек ещё не видел, как бы не старался.

Я-то дёрнул сразу все три канала, а мог бы только один

Да, такой способ искусственного увеличения числа "градаций" при наличии лишь 8 бит на канал тоже существует, это когда мы строим LUT, отступая от серого на плюс минус одно значение по одному каналу в промежутках между "чистым" серым. Я как-то давно делал тест, получалась весьма различимая радуга, но на хорошем мониторе я это не тестил, возможно на досуге сделаю ещё один подход к снаряду.

Иными словами - общий диапазон крайне широкий, но в каждый конкретный момент, адаптировавшись, глаз может выхватывать одновременно не более 80-130 градаций.

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

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

Вообще разницу в одну градацию разные мониторы по-разному показывают, кто-то лучше в светах, кто.то в тенях, на DELL я границ почти не вижу, а вот на EIZO довольно отчётливо, даже посчитать их количество можно.

Кстати, по поводу яркости - тоже верное замечание. EIZO значительно ярче и при увеличении абсолютной яркости относительная разница между градациями тоже увеличивается. (максимальная яркость, кстати - это важный параметр медицинского монитора, для маммографии, скажем, он должен обеспечивать аж 420 кд/м². Это офигенно ярко).

Вот проверил - DELL у меня установлен на 80%, а EIZO на 50%, но даже так он ярче. Я только что попробовал выкрутить его на максимум, и всё стало ещё заметнее, но работать так постоянно — могут вытечь глаза.

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

Я бы наоборот сказал, что если вы не видите этого эффекта, то это не значит, что его нет. На самом деле весь мир в подавляющем большинстве работает на восьми битах на канал, и это в общем-то не создаёт никаких неудобств, просто есть возможность получить и 10 на мониторе, мне было интересно с этим поэкспериментировать. Жаль, я не могу показать экран моего монитора — там это видно. Но повода бросать всё и переписывать на 10 бит, конечно же нет. Но если в каком-то очень частном случае это будет слишком заметно, то есть, так сказать резерв для улучшения.

Ага, вот, наконец те данные, которые я искал. Вот вы пишете, что слабо различимая человеческим глазом яркость это 0,1 кд/м².

Смотрите, это калибровочная кривая по медицинскому DICOM стандарту из поста, я отмечу на ней пару реперных точек:

Как видите на уровне серого 128 монитор должен светить на 20 кд/м², а на уровне 192 - примерно на 60 кд/м². То есть при разнице в 64 уровня серого разность интенсивности составит 40 кандел на м². Она ещё и нелинейная к тому же (масштаб-то по y логарифмический) но всё равно в среднем это заметно больше чем 0,1 кд/м² на градацию (40/64). Исходя только из этого факта можно предположить, что разница между соседними градациями должна быть слабо, но различима, по крайней мере на этих яркостях.

И я несколько сомневаюсь, что "слепящая яркость от нити накаливания, которую можно с трудом терпеть" — это 107 кд/м², хотя бы потому, что это несколько ниже типичной яркости монитора, а максимальная, которую RadiForceRX340 может выдать по спекам - вообще 400 кд/м². А лампочки тысячами кандел светят, если верить моему интернету:

Information

Rating
Does not participate
Location
Ahrensburg, Schleswig-Holstein, Германия
Date of birth
Registered
Activity