В общем Дядя Дима как истинный фанат 8-бит\консолей\чиптюна\перфекционизма и тд не очень терпит костыли, а тем более костыли в шрифтах. Все алгоритмы субпиксельного сглаживания шрифтов - один сплошной костыль. Почему он был ?
PPI
Идея в том что в печатном деле сразу от матричных принтеров перешли к большим PPI (points per inch - точек на дюйм) : лазерный принтер - 1969, струйный - 1974, а в компьютерном деле было так :
Since the 1980s, the Microsoft Windows operating system has set the default display "DPI" to 96 PPI, while Apple/Macintosh computers have used a default of 72 PPI.
|
те это началось с давних времён и дошло аж до windows 7. Производители софта для пк и матриц для мониторов застряли : поменять PPI почти не возможно, ни апи рендера интерфейса ни общие подходы к его созданию просто не имеют требуемого функционала, в итоге юзеру будет неудобно работать (слишком мелкие или слишком большие окна, мозги до сих пор думают что 2560 * 1440 это 24+ дюймов, скоро это будет 7 дюймов)
Хинтинг
То что содержит текст должно или рендерится по правилам печатного дела или вставляем костыли, какие костыли были вставлены раньше : хинтинг.
Думаю некоторые слышали что это выравнивание формы буквы к пиксельной сетке, но их бывает несколько :
0) Обычный (классический) хинтинг - мы просто растеризуем векторную форму буквы в момент рендера и математически приводим её к сетке пикселей.
из

делаем
1) TrueType хинтинг - в ttf шрифтах находится небольшая виртуальная машина, с её помощью пишется код который доводит шрифт до ума на нужном размере
(по некоторым данным, microsoft потратила 12 человеко-лет чтобы довести Times New Roman)
2) PostScript хинтинг - сам PS (postscript) файл является описанием для рендра, если не вникать то скажем чем-то средним между LaTeX и PDF, собственно в зависимости от рендера мы можем получать разный хинтинг, формат не имел требований для него в отличии от PDF (чтобы гарантировать одинаковый вид PDF везде у adobe есть свои алгоритмы рендера текста)
Сглаживание (Antialiasing)
У хинтинга есть одна принципиальная проблема : он чётко прибивает буквы к пиксельной сетке, но метрика букв в шрифтах нифига не совпадает с пиксельной сеткой, и когда шрифт на определённом размере требует расстояние между буквами в 0.5 пикселей то начинаются огромные проблемы : длина всего слова увеличивается, когда по задумке должна уменьшатся)
не знаю в какой момент это появилось, но первая идея была просто смирится с тем что буквы будут не попадать в пиксельную сетку и попытаться что-то с этим сделать :
было

стало
Всё бы хорошо, но хорошо только при 48 и больше pt (имхо), при меньших начинаются проблемы - радиус сглаживания должен быть меньше 1 пикселя, а так физически быть не может, в итоге получаем тупо мыло. В Mac OS X для маленьких размеров сглаживание отключается.
Субпиксельное сглаживание
Инженеры рендера шрифтов не могут заставить весь мир перейти на новую парадигму метрик, потому их всё же заставляют хоть что-то придумать с этими буквами. Думаю они пошли так - физических пикселей на экране в 3 раза больше чем доступных, потому для сглаживания можно получить пиксель в 1\3 настоящего.
Парни из apple славились своими типографическими возможностям потому пытались рендерить шрифты 1 в 1 как они выглядели бы на бумаге, а парни из microsoft не боялись их извратить чтобы проще читать было, в итоге вышло так :
Всё бы хорошо, но тут всплыли наши дорогие *nix'ы, которые в погоне за чем-то другим просто не успели, совсем бл*ть не успели и прозевали эту гонку. Рендеринг шрифтов в *nix'ах неплохой, но его просто никто не смог настроить, хотя бы по гамма-корекции, обширная статья о том какие проблемы принесло субпиксельное сглаживание, как их решать и что всё же не так с *nix'ами:
http://www.antigrain.com/research/font_rasterization/
А теперь ... MetroModern
Давайте вспомним зачем индустрия родила столько костыле-технологий за последние 20 лет ? Потому что производители мониторов не могли осилить больше 100 ppi долгое время, а потом не могли начать их выпускать из-за латентности рынка ! Первый камень в огород был закинут компанией apple в 2010 году с представлением iphone 4, ppi в 326 был новизной, но главное что они долго и упорно выстраивали переход на него на уровне софта, в итоге впервые с 80-х отдельная ниша смогла перейти на рендеринг с другим ppi без геморроя

После apple производители матриц не выдержали и начался бум высоких ppi, теперь разработчикам софта придется выкручиваться. Отказаться от субпиксельного сглаживания можно уже на 300 ppi, отказаться от сглаживания вообще можно при >500 ppi.
А теперь причем тут ClearType и
MetroModern ? Все эти тайлы с текстом у них ездят по экрану, а одна из главных проблем субпиксельного сглаживания - он очень плохо выглядит если движется вдоль субпиксельной сетки (по горизонтали в наиболее распространённых мониторах). Дизайнеры microsoft очень вовремя предложили фичу которая заставила их же отказатся от ClearType

В итоге всё выглядит идеально
http://www.istartedsomething.com/201...ndows-8-metro/, а главное : будет выглядеть еще лучше когда распространение получат домашние мониторы с большим ppi.
Эпоха ClearType закончена !
ps. Так причем же тут Дядя Дима ? Дело в том что начиная с win xp и продолжая в win 7 и mac os x 10.6-10.8, Дядя Дима насильно всеми возможными тулзами вырезал ClearType из системы, это начиналось где-то с 2004 года, вот считайте 8 лет боролся с субпиксельным сглаживанием, зато всё выглядит как в windows 2000, глаза целы, да и нервы тоже.