Недавно у меня возникла проблема с субпиксельным сглаживанием текста , который производит очень резкие цвета и заставил меня задуматься, как это должно быть сделано правильно:
Я нарисовал несколько случаев черной плитки, покрывающей трети пикселей ниже.
Цвета совпадают с теми, которые я вижу, однако, когда я смотрю на правильно сглаженный текст, результат получается не таким ярким и отвлекающим:
Я предполагаю, что должен быть баланс между хорошей интенсивностью света и правильным цветом. Какие методы используются для субпиксельного сглаживания, которые дают такие хорошие результаты?
Обновить:
Я визуализировал белый чайник для изображения с шириной 3х и мультисэмплингом. Ниже я сравниваю усреднение каждые 3 пикселя с назначением каждого RGB. Цвета по- прежнему кажутся слишком яркими в некоторых случаях (особенно по сравнению с примером выше , из здесь ), не то, что мой телефон захватывает их.
источник
Ответы:
Я не уверен, что там происходит. Если посмотреть на рендеринг «соображений» в вашем примере, «минусы» выглядят так, как вы получаете, когда делаете грубое подпиксельное сглаживание, не применяя необходимое «исправление», чтобы оно выглядело хорошо. Но тогда «der» в том же слове выглядит так, как будто нет субпиксельного сглаживания.
Вы можете найти хорошую статью о том, как хорошо выглядит субпиксельное сглаживание, здесь https://www.grc.com/ct/ctwhat.htm, а для части «исправить» здесь https: //www.grc. com / ct / freeandclear.htm и здесь https://www.grc.com/ct/cttech.htm
Это сводится к следующему: если вы просто вычисляете интенсивность R / G / B, вычисляя покрытую область для каждого подпикселя, результирующие цветовые полосы будут очень некрасивыми / раздражающими. Чтобы исправить это, вы должны применить горизонтальный размытие / фильтр нижних частот к субпиксельному изображению. В результате получается менее резкое изображение с гораздо менее насыщенными цветами. Т.е. что-то вроде твоего "Check you" примера.
источник
Вы просто растеризуете буквы, как если бы они были в 3 раза шире.
Результаты отличаются тем, как вы растеризуете кривые, особенно в том, какую схему сглаживания / выборки он использует, и использует ли он хинтинг шрифтов . За большой обзор см Тексты растеризации выдержкой по Anti-Grain Geometry (IIRC это то , что Хром / PDFium использует) или субпикселей рендеринга в Википедии.
Что касается прикрепленного изображения, я не верю, что оно имеет какое-либо отношение к субпиксельной визуализации. Это может быть что угодно: неправильная геометрия пикселя , неправильная гамма, неправильное преобразование цветового пространства, ...
источник