В первой декаде сентября без фанфар и шумихи вышел FreeType версии 2.7, и это событие, без сомнения, можно назвать праздником на улице пользователей Linux, FreeBSD, NetBSD, ReactOS и других товарищей. Попробуем разобраться, от чего у нас такое безудержное веселье.
FreeType — библиотека с открытым кодом на Си, которую используют для растеризации шрифтов и операций над ними. В новой версии по-умолчанию используется алгоритм обработки инструкций TrueType v40.



Это позволило добиться качественного субпиксельного сглаживания шрифтов, как в майкрософтовском DirectWrite/ClearType, но на самом деле никакого субпиксельного сглаживания не используется. Кроме того, алгоритм v40 рендерит быстрее Infinality, который использовался в предыдущем алгоритме v38, при этом конечный результат не хуже.


Infinality, патенты и ШГ


Исторически, было две проблемы со шрифтами в Linux. Во-первых, это минное поле патентов Microsoft и Apple, из-за чего разработчики мучительно шли обходными путями. Частично, эту проблему решал набор патчей Infinality, но ценой была низкая скорость и чересчур усложненный код. К тому же, по словам мейнтейнера, FreeType разработчик Infinality потерял интерес к своему проекту.


Давайте приглядимся к этим патентам чуть подробнее. С 10-го мая 2010-года истекли три патента Apple на байткодное сглаживание TrueType шрифтов. Теперь нет необходимости отключать его использование по-умолчанию.


Patent US5155805:
Method and apparatus for moving control points in displaying digital typeface on raster output devices

Patent US5159668:
Method and apparatus for manipulating outlines in improving digital typeface on raster output devices

Patent US5325479:
Method and apparatus for moving control points in displaying digital typeface on raster output devices

Но еще 9 патентов на ClearType Майкрософт остаются в силе.


список майкрософтовских патентов

Patent US6239783:
Weighted mapping of image data samples to pixel sub-components on a display device


Patent US6243070:
Method and apparatus for detecting and reducing color artifacts in images


Patent US6282327:
Maintaining advance widths of existing characters that have been resolution enhanced


Patent US6307566:
Methods and apparatus for performing image rendering and rasterization operations


Patent US6393145:
Methods apparatus and data structures for enhancing the resolution of images to be rendered on patterned display devices


Patent US6421054:
Methods and apparatus for performing grid fitting and hinting operations


Patent US6624828:
Method and apparatus for improving the quality of displayed images through the use of user reference information


Эти патенты можно разделить на три условные категории:


  • показ рисунков, когда информация отображается на уровне отдельных LCD субпикселей, вместо цельных пикселей
  • показ тех же рисунков после применения разнообразных фильтров, например для подавления артефактов цветного окаймления
  • обработка размеров и расстояний в красочном мире субпикселей

И это еще не все, есть и другие патенты. Прелесть ситуации еще в том, что Microsoft и Apple подписали соглашение о кросс-лицензировании в то время, как разработчики FreeType и их коллеги по цеху открытого ПО должны героически преодолевать ШГ препятствия.


Ценность этих патентов весьма сомнительна. Сразу же после того, как Майкрософт запатентовала ClearType, появились сомнения относительно их правомочности и новизны, причем писали об этом в газете Нью-Йорк Таймс, не на безызвестном случайном форуме. Один из активных разоблачителей Стив Гибсон на свой интернет страничке пишет, что ClearType — хорошо забытые технологии, которые Стив Возняк запатентовал 20 лет назад для Apple II. Никакого существенного прорыва технической мысли нет и в помине, а значит и интеллектуальной собственности нет.


Thus, Microsoft's ‘ClearType’ application of sub-pixel text rendering does not represent the dramatic breakthrough that they claim and it can not be the valid subject for intellectual property acquisition.

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




Позволю себе немного пафоса. Пока что Майкрософт не спешит дарить патенты на ClearType сообществу открытого ПО, как это сделала компания Adobe с OpenType/CFF движком. Об этом неплохо помнить, когда мы очередной раз видим слоган Microsoft сердечко Linux. По примеру американского президента Рейгана хочется воскликнуть: «Господин Наделла, если Майкрософт любит Linux, разрушьте эти патентные стены!».


Новый рендеринг для TrueType


Наследие программных алгоритмов рендеринга шрифтов для ЭЛТ мониторов 90-х гг. прошлого столетия — это вторая проблема Linux со шрифтами. Семейство TrueType шрифтов появилось на свет в эпоху зернистых мониторов с электронно-лучевыми трубками. В снимках экрана Windows 95 из текста так и лезут пиксели. Каждый отдельный глиф намертво вколачивался в сетку из пикселей. Майкрософт вложила в это дело уйму человеко-часов, обсчитывая и оптимизируя глифы для всевозможных размеров, чтобы т. н. основные вэб шрифты (Arial, Times New Roman, Courier New и т. д.) на экране выглядели достойно.


Сизифов труд однако возымел последствия. Настала новая эпоха ЖК-мониторов и тут оказалась, что старые TrueType инструкции надо перепрограммировать для того, чтобы использовать эти новые возможности или хотя бы для того, чтобы шрифты отображались корректно. Нет необходимости пристегивать каждый глиф к сетке полных пикселей, вместо этого их можно пристегнуть к одному из трех субпикселей, даже к части их и добиться гораздо более качественного изображения, благодаря такому субпиксельному сглаживанию. Здраво рассудив, что переписать весь старый багаж TrueType инструкций нереально, в MS придумали асимметрическую сверх-дискретизацию и режим совместимости, в котором использовали много лихих приемчиков и костылей из инструкций старых шрифтов. Таким образом, и старые шрифты могли в некоторой степени воспользоваться увеличенным кратно горизонтальным разрешением.


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





Впрочем, нашелся герой, который пошел трудным путем и реализовал в Infinality все вышеназванное спагетти старых и новых инструкций. Какое-то время FreeType включал в себя интерпретатор v38 — набор патчей Infinality, но затем код был удален в пользу интерпретатора v35. Разработчик Infinality поистине взялся за невыполнимую миссию — сделать так, чтобы шрифты выглядели лучше чем в Windows, и чтобы их можно было тонко настроить.


Here is the core secret to making fonts render like through DirectWrite/ClearType on Windows: There actually is no subpixel hinting going on here. Shock. The code simply ignores all horizontal hinting instructions.

В итоге, удалив Infinality, мейнтейнер FreeType сделал выбор в пользу простоты и чистоты кода. Так появился алгоритм обработки инструкций TrueType v40. Его принцип прост как копейка — полное игнорирование всех инструкций горизонтального сглаживания. Никакого субпиксельного сглаживания. Гораздо меньше труда, а результат практический одинаковый. Заодно решается проблема с шагом глифа и меж-символьными расстояниями в старых не обученных шрифтах.


Как достичь гармонии шрифтов с FreeType 2.7


Хорошая новость в том, что для этого ничего делать не нужно, обновления сами появятся в репозитарии вашего Linux или BSD дистрибутива. Просто обновитесь до новой версии и перезагрузите X.Org Server. Настройте FontConfig по вкусу. А плохая новость в том, что хочется прям сейчас, а ждать несколько дней или недель иногда тяжко. Ну а особо нетерпеливые пользователи могут сами собрать новую версию из исходников или установить с помощью штатного установщика пакетов. В моем Gentoo FreeType 2.7 пока не стабилизировался.


$ eix freetype
$ [I] media-libs/freetype
     Доступные версии:      (2) 2.5.5^d 2.6.3-r1^d ~2.6.5^d ~2.7-r1^d
       {X +adobe-cff auto-hinter bindist bzip2 (+)cleartype_hinting debug doc fontforge harfbuzz infinality png static-libs utils ABI_MIPS="n32 n64 o32" ABI_PPC="32 64" ABI_S390="32 64" ABI_X86="32 64 x32"}

Для консервативного Debian, наверное придется ждать следующего релиза, а у пользователей Ubuntu и так все хорошо со шрифтами, им торопиться некуда.

Поделиться с друзьями
-->

Комментарии (79)


  1. Barafu
    02.10.2016 00:31
    +1

    А я то думал, чего у меня в Арче шрифты перекорёжило… А это новый Freetype установили. Он может и отлично работает, но только не у меня. Шрифты как бы точками пошли.
    Попробую отключить все сглаживания в настройках и взять шрифты попроще…


    1. mrobespierre
      02.10.2016 09:41
      +7

      такое бывает с hintfull, попробуйте hintslight (ну и сами шрифты могут не подходить, стоит попробовать DejaVu, Droid и Bitstream Vera)


      1. Barafu
        02.10.2016 10:21

        Во, помогло. Благодарю.


    1. MikalaiR
      02.10.2016 11:38

      А у меня после обновления до 2.7 шрифты стали выглядеть размыто. Переключился на старый режим, добавив в profile.d «export FREETYPE_PROPERTIES=»truetype:interpreter-version=35""


      1. BlackRaven86
        02.10.2016 16:44

        Аналогично, пришлось включать старый режим, иначе шрифт DejaVu превращался в мыло. И это не только в Арче, думаю во всех дистрибутивах будет много шума, когда обновят.


  1. h31
    02.10.2016 00:41
    +10

    Самое обидное, что в Microsoft выкинули весь свой труд в области сглаживания шрифтов. В Metro-приложениях (aka Modern UI) используется grayscale subpixel rendering вместо RGB subpixel rendering. Одна из причин — для отрисовки с RGB нужно знать, какого цвета фон, а в Metro по каким-то причинам эта информация недоступна во время рендеринга текста. В итоге в Метро-приложениях такие ужасные шрифты, что в Линуксе даже 10 лет назад было намного лучше.


    1. PastorGL
      02.10.2016 03:28
      +2

      Справедливости ради, на телефонах, где 300 с лишним dpi монохромное сглаживание выглядит просто божественно, суперчётко и в то же время гладко. Если положить рядом люмию и айфон, то на втором текст выглядит грязнее.

      Но с обычным мониторным dpi это эпический фэйл, конечно. Тем же Edge, который modern приложение, пользоваться до недавнего времени невозможно было именно из-за жутких шрифтов на сайтах. Теперь RGB субпиксельное сглаживание в него вернули — в сам webview, но не в интерфейс. Может, всё же осилят к следующему большому апдейту и в интерфейс, кто их знает.

      В линуксовых шрифтах сглаживание, может быть, и стало хорошим, но вот само качество шрифтов, особенно кириллицы, всё ещё удручает.


      1. h31
        02.10.2016 14:46

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


        1. BlackRaven86
          02.10.2016 16:56

          С HiDPI есть другая проблема — не всегда ОС и приложения с ним адекватно работают.


    1. Athari
      02.10.2016 08:11

      WPF шёл по тому же пути, ничего нового. Тоже в первой версии было мыло в интерфейсе. Причём в те времена не было моды на крупные шрифты, а высоким DPI даже не пахло, поэтому выглядел текст даже хуже, чем в UWP. Потом добавили "экранный" режим, но с оговорками вокруг анимации и масштабирования.


      Должны подтянуться, надо только подождать. Ну, если к тому времени 300 DPI на десктопе не станет нормой. :)


    1. neoxack
      02.10.2016 09:40

      Не только в Metro, а во всех на WPF, что дико бесит.


      1. Athari
        02.10.2016 10:23
        +3

        WPF поддерживает разный рендеринг: без сглаживания, "экранное" сглаживание a.k.a. ClearType, "идеальное" сглаживание a.k.a. градации серого. Просто по умолчанию используется последнее. В приложениях со стандартным виндовым интерфейсом без крупных шрифтов и куч анимаций следует использовать ClearType, можете тонко намекнуть разрабам, если они про это забыли.


        1. neoxack
          02.10.2016 11:30

          Естественно
          TextOptions.TextFormattingMode=«Display» и TextOptions.TextRenderingMode=«ClearType» включены. Но даже с ними шрифты выглядят ужасно


    1. 13_beta2
      02.10.2016 22:27
      +2

      Про метро немного другая причина, даже две:
      — метро/универсальные приложения ожидают, что могут в любой момент быть перевёрнуты и привязка к структуре пикселя невозможна. Ну точнее надо перерисовывать весь текст, имея ввиду, что сетка может быть в четырёх вариантах
      — из-за разнообразия устройств не всегда чёткая сетка существует как таковая (pen-tile в amoled лишь один из примеров)
      Насколько мне известно именно по этим причинам суб-пискельного сглаживания никогда не было в android.

      Что касается самого directwrite — если отключить «улучшение» контрастности, то текст становится не идеальным, но уже не таким грубым. Пример на картинке.

      Скрытый текст
      image


      1. h31
        03.10.2016 00:19
        +1

        Что касается самого directwrite — если отключить «улучшение» контрастности, то текст становится не идеальным, но уже не таким грубым.

        А где это можно сделать?


        1. 13_beta2
          03.10.2016 23:21

          Значения по-умолчанию задаются так, но приложение может их обойти.

          Заголовок спойлера
          Windows Registry Editor Version 5.00

          [HKEY_CURRENT_USER\Software\Microsoft\Avalon.Graphics\DISPLAY1]
          "ClearTypeLevel"=dword:00000000
          "EnhancedContrastLevel"=dword:00000000
          "GrayscaleEnhancedContrastLevel"=dword:00000000
          "TextContrastLevel"=dword:00000000


  1. icCE
    02.10.2016 00:57
    +2

    У меня другой вопрос, как быть если у тебя два монитора и ЭЛТ и ЖК?
    При этом от первого ты не хочешь или не можешь отказатся.


    1. Athari
      02.10.2016 08:12
      +1

      Зачем / почему?


      1. icCE
        02.10.2016 14:26

        что зачем и что почему?


        1. VioletGiraffe
          02.10.2016 15:25
          +4

          Думаю, подразумевался вопрос: «Зачем в 2016 году ЭЛТ-монитор?»


          1. Foolleren
            03.10.2016 13:55

            посмотрите сколько стоит монитор с поддержкой AdobeRGB, вопросы отпадут сами собой


            1. sumanai
              03.10.2016 16:01

              В своё время брал Asus PA 246Q за 17 тысяч, плюс ко всему он 16:10, привычнее было с ЭЛТ переходить ))


            1. dom1n1k
              08.10.2016 17:16
              +3

              Все дело в том, что на сегодняшний день все ЭЛТ-мониторы уже физически старые, с севшими трубками. Я думаю, AdobeRGB там остался только чисто номинально, на бумаге.


          1. icCE
            03.10.2016 14:00

            Ну я использую для ретро машин больше и… есть в нем что-то тепловое и лампово приятное.
            Играть в динамичные игры очень неплохо, например в новый doom «4» :)
            Современные ЖК очень плохо работают с нестандартными разрешениями, исключение например только NEC 2090UXi или подобные. Там более менее нормальное интерполяция, но и эти мониторы редки да и 60 герц. Я бы честно говоря купил бы компактный новый ЭЛТ монитор 4 на 3, если бы их еще делали.
            Поэтому, что бы монитор просто так не занимал место, он работает вместе с 27 дюймовым 4k dell.


            1. Athari
              07.10.2016 14:18

              Зачем аппаратная интерполяция в 2016-м году? :) Проблемы с нестандартными разрешениями возникают, только если разрешение очень близко к родному у ЖК-монитора. Если вы играете в 720p на мониторе 1080p, то логичнее подтянуть железо, а не мучаться с монитором. Учитывая, что у вас 4K, железо наверняка неплохое, поэтому не понимаю, что вы растягивать хотите.


              Если говорить про тёплые ламповые ископаемые игры, то современные интерполяторы xBR(Z) с шейдерной приправой или вовсе полноценная замена разрешения в эмуляторах, постпроцессорах и хаках делают аппаратные подходы устаревшими. Со звуком то же самое — эмуляция того же Roland MT-32 дошла до уровня, когда смысла в железе ноль.


              1. icCE
                07.10.2016 14:56

                >Зачем аппаратная интерполяция в 2016-м году? :)

                Ну как минимум вот для этого — https://plus.google.com/103502988927181360892/posts/gaZRshM8geH
                или вот этого
                https://plus.google.com/103502988927181360892/posts/b1NVHQrcwDK
                или еще для кучи этого железа (только часть)
                -https://fotki.yandex.ru/users/icce/album/155960/

                Все это подключенное к 4k монитору или просто fullhd, дает искажение.
                Теперь по поводу игр и эмуляции в частности, эмуляторы это прекрасно, но и в них находятся баги, так как они не полностью эмулируют железную часть. Для того, что бы понять, нормально ли работает эмулятор, как минимум надо иметь то самое желазо.
                Например, ранние версии os/2 нормально не запускаются без патчей в виртуальных машинах (в известных). MT-32 хоть и эмулируется, но периодически возникают прикольные глюки. Да тот же PC спикер в dosbox звучит по другому.

                Это все мое сугубо личное и обычный человек не будит этим заморачиваться.


                1. Athari
                  07.10.2016 16:56

                  Старые оси и приставки хорошо эмулируются, причём у эмуляторов такое количество дополнительных фич, что играть на старом железе желания ноль, если честно: загрузка моментальная (если игра не прибита к герцам, то даже без телодвижений), можно сохранять состояния (критично для долгих игр без сохранений), графика целиком и полностью контролируется (можно играть с аутентичными пикселями, можно эмулировать ЭЛТ шейдерами, можно подобрать параметры для xBR для разумной интерполяции), не надо считать свободные мегабайты, железо не отнимает место, и всё это стоит 0 руб 0 коп. :)


                  Если запускать на низких разрешениях, то современные видюхи позволяют выбирать, кто выполняет растягивание — монитор или видюха, и как. Но я низких разрешений наоборот стараюсь избегать, потому что винду жутко переклинивает, и все окна сползают. Эмуляторы сами умеют всё тянуть, времена, когда на растягивании нужно было экономить ради пары лишних инструкций CPU, прошли, слава богам.


                  Насчёт OS/2 ничего сказать не могу. Там есть что-то уникальное? Если с Amiga любят заморачиваться, потому что версии для неё зачастую круче, чем для других платформ, то насчёт OS/2 подобного не слышал.


                  Я не большой поклонник PC-спикера, поэтому на аутентичность звучания мне пофиг. :) Там синус вместо квадратной пилы или что-нибудь в этом духе? Что именно поменялось?


                  1. icCE
                    07.10.2016 19:01
                    -1

                    >Старые оси и приставки хорошо эмулируются,
                    Относительно недавно, заработали в эмуляторах Win95/98. И то там есть определенные слезы. Только сейчас появилось, пусть и кривая но поддержка 3dfx.
                    При этом нормальный эмулятор, так не хило грузит i7 5 поколения, по эмуляции P166.
                    Ну а так все хорошо конечно.

                    >Если запускать на низких разрешениях, то современные видюхи позволяют выбирать, кто выполняет растягивание — монитор или видюха, и как. Но я низких разрешений наоборот стараюсь избегать,
                    Без разнрицы кто это будет делать, результат в своем роди плачевный, если только монитор не заточен для этого. Если есть желание подискутировать, то велком на old-games.ru, там целая тема уже обсасывается не один год. Поэтому с текущим железом, только эмуляция.

                    >Насчёт OS/2 ничего сказать не могу. Там есть что-то уникальное?
                    Ну сама по себе Os/2 уникальна :)

                    >Я не большой поклонник PC-спикера, поэтому на аутентичность звучания мне пофиг. :) Там синус вместо квадратной пилы или что-нибудь в этом духе? Что именно поменялось?

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


    1. SEVENID
      02.10.2016 10:01
      +7

      Отдельные иксы с собственными chroot и freetype на каждый монитор. Настройка будет нескучной.


  1. Denai
    02.10.2016 02:06
    -4

    А в каких дистрибутивах Linux до этого были проблемы со шрифтами? Я везде наблюдал обратную картинку — гораздо лучше чем ClearType выглядели


    1. ValdikSS
      02.10.2016 07:18
      +9

      Вы, наверное, просто неприхотливы, или не особо обращаете внимание на шрифты. Пожалуй, только в Ubuntu хороший рендеринг шрифтов сразу после установки, но все же есть проблемы с кернингом на кириллице.
      Сейчас, правда, все больше и больше UHD-мониторов, и проблема отходит на второй план, я не особо вижу разницу между Freetype <2.7 и Infinality при PPI 185.


      1. solver
        02.10.2016 10:19
        +2

        Ну вот фиг знает. В Windows 10 рендеринг шрифтов просто нереальное убожество, по сравнению с Ubuntu и MacOS. Проблемы с кернингом нигде не видел. Может увас это отдельные шрифты шалят?
        С у величением размера и разрешения мониторов, в винде все только хуже становится. Все шрифты какие-то тонюсенькие, хлипенькие, бледные. Верчение настроек ClearType делает только хуже. Короче это тихий ужас.


        1. Athari
          02.10.2016 10:26
          +2

          "Хлипленькие" шрифты могут встречаться разве что в метро и на мелкомягких сайтах, где они упарываются со всякими Ultra-Light. Так-то по умолчанию в гуе везде до сих пор Segoe UI стандартной толщины, вроде.


          1. solver
            02.10.2016 10:32
            -3

            Стандартный проводник к какому типу приложений, по вашему, относится? )
            Далеко ходить не надо, на всех стандартных системных интерфесах шрифт убожество…


            1. VioletGiraffe
              02.10.2016 15:42
              +3

              Это ваше личное мнение. У меня всё замечательно в Проводнике на FHD мониторе 27". В Убунте тоже норм, но виндовый текст мне больше нравится.


              1. solver
                02.10.2016 17:08
                -6

                Не хочу рушить ваш уютный мир. Но здесь люди вообще-то по определению высказывают свое мнение)
                Точно так же, как и то, что у вас все хорошо, это тоже только ваше личное мнение.


            1. Athari
              02.10.2016 15:44
              +3

              А, только сейчас заметил, что вам нравится яблочное мыло. Ну да, такой рендеринг в винде отсутствует. Я сначала подумал, что вы конкретно про Windows 10, но в Проводнике рендеринг тот же, что и во времена Windows XP, только шрифт по умолчанию сменился с MS Sans Serif на Segoe UI.


              В винде традиционно любили втискикать буквы в пиксельную сетку, жертвуя индивидуальностью шрифта, а в яблоках на первом месте всегда стоял шрифт. На высоких DPI, кстати, два подхода теоретически должны устремляться к единому виду. Если вы видите разницу при 300 DPI, значит, у вас разные шрифты. :)


              1. solver
                02.10.2016 17:05
                -7

                У вас большие проблемы со зрением, если вы такое заметили)
                Идеалом по шрифтам, я считаю Убунту. Макось считаю ущербной по всем параметрам, но даже в ней шрифты сильно лучше винды.
                И при чем тут XP? В какой вселенной, она была идеалом-то по шрифтам? Сейчас актуальна другая версия винды, и поросшие мхом версии никому не интересны.


                1. Athari
                  03.10.2016 02:21
                  +2

                  Хрюшка упомянута исключительно как первая винда, умеющая ClearType.


        1. dmitry_dvm
          02.10.2016 11:11
          -1

          А по-моему это на макоси шрифты вырвиглазные. Дело вкуса. Но установите центось, например, с гномом и кириллицей — вы все еще будете утверждать, что там нет проблем со шрифтами?


        1. Erelecano
          03.10.2016 20:29

          > С у величением размера и разрешения мониторов, в винде все только хуже становится.

          Вот-вот. Пока сидел на махоньком мониторе в винде шрифты выглядели хуже, чем в линухе, но не сильно, а как поставил себе в качестве монитора ТВ на 32" с разрешением 1920x1080, так совсем в винде все страшно стало.


          1. wrewolf
            04.10.2016 10:30

            68ppi все дела, чего же вы хотели. Там пиксели то глаза бросаются, а вы про шрифты.


            1. Erelecano
              04.10.2016 10:32

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


  1. tema86
    02.10.2016 09:40

    Исправьте пожалуйста FreeDBS.


    1. temujin
      02.10.2016 09:40
      +1

      Досаднейшая ошибка, исправлено.


  1. dipsy
    02.10.2016 09:41
    +3

    Cleartype is just the worst «fix» for a non existing problem ever. ©
    Теперь и в линукс, прекрасно… Кстати, монитор с увеличенным PPI не сильно помогает, на 4К с разрешением 28" мыло от этого чудо-сглаживания отлично видно, глаза не могут сфокусироваться. Ну это мое субьективное мнение, конечно, хотя когда перелопачивал форумы в поисках ответа на вопрос как же отключить это мыло в новых версиях IE и прочих офисах, показалось что проблема достаточно заметная, чтобы её игнорировать и не давать пользователью возможность сглаживание убрать.


    1. Athari
      02.10.2016 10:28

      А как вам яблочное сглаживание? :)


  1. helg1978
    02.10.2016 09:59

    интересно, повлияют ли все эти изменения на ftgl, или там все эти сглаживания отключены при построении глифов?


  1. 13_beta2
    02.10.2016 10:01

    Осталось сделать один, но очень важный шаг — отказаться от привязки совсем.
    Даже на обычных lowDPI мониторах современные UI без привязки выглядят отлично. Благо и качество шрифтов и используемые кегли уже достаточны чтоб избежать каши. И это даже без суб-пискельного сглаживания.


    1. sumanai
      02.10.2016 11:14
      +2

      Кому как. Я наоборот сижу на настройке «Не сглаживать до 18px», а что свыше- сглаживается стандартным методом. На разноцветную кайму ClearType смотреть сил нет вообще, сглаживания градациями серого могу терпеть, но не хочу. Итого мне нормально только на ХР, где самая жёсткая привязка к пиксельной сетке. Конфигурирование Linux не осилил, то мыло, то мешанина пикселей, на MacOS вообще с настройками традиционно туго, а Windows 10 умудряется смешивать разные типы сглаживания в одном окне, а метрошный интерфейс никак не хочет переходить на режим без сглаживания.


      1. 13_beta2
        02.10.2016 23:48

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

        Конфигурирование Linux не осилил
        Тут уже упомянали, в ubuntu отрисовка текста очень хороша, и имеет основные необходимые настройки из коробки (читай в gui).

        Windows 10 умудряется смешивать разные типы сглаживания в одном окне
        С этим нельзя не согласиться. Переходный период, когда в системе сосуществуют и win32/gdi-приложения и win32/directui-приложения и uwp-приложения выглядит очень пёстро и неаккуратно.


        1. sumanai
          03.10.2016 01:19

          Но то, что вам так нравится — жёсткая привязка — это результата почти ручной привязки каждого глифа в стандартных гарнитурах к популярным размерам.

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

          Веб-шрифты сглаживаются принудительно, и субпиксельно, видимо, зашито в самом шрифте.
          Вот как у меня отображается Fifa Sand из заголовка в размере 9px:
          image
          Для меня главное что основные шрифты, которые читаешь, отображаются нормально, на заголовки можно забить, к тому же они часто большого размера, и сглаживание совсем не мешает.
          Тут уже упомянали, в ubuntu отрисовка текста очень хороша, и имеет основные необходимые настройки из коробки (читай в gui).

          Там и пытался, кириллица вышла просто ужасно. Может руки кривые, может, с 14.04 прогресс ушёл дальше.
          Как там обновят на FreeType 2.7, нужно будет снова попытаться.
          Переходный период, когда в системе сосуществуют и win32/gdi-приложения и win32/directui-приложения и uwp-приложения выглядит очень пёстро и неаккуратно.

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


        1. Athari
          03.10.2016 02:27
          +2

          Переходный период, когда в системе сосуществуют и win32/gdi-приложения и win32/directui-приложения и uwp-приложения выглядит очень пёстро и неаккуратно.

          У винды перманентный "переходный период", она вся такая от и до. Последний диалог в стиле Windows 3 удалили где-то в районе Windows 7, вроде? :) После попапности 9х, вебовости МЕ, кислотности XP, прозрачности Висты, скромности 7, плоскости 8, гибридности 10 уже столько всего намешалось, что разнообразие рендеринга шрифтов теряется на общем фоне.


  1. Cyber100
    02.10.2016 11:39
    -1

    у меня шрифты доступны и установлены.

    eix freetype
    [I] media-libs/freetype
    Доступные версии: (2) 2.5.5^d 2.6.3-r1^d{tbz2} 2.6.5^d{tbz2} ~2.7-r1^d
    {X +adobe-cff auto-hinter bindist bzip2 (+)cleartype_hinting debug doc fontforge harfbuzz infinality png static-libs utils ABI_MIPS=«n32 n64 o32» ABI_PPC=«32 64» ABI_S390=«32 64» ABI_X86=«32 64 x32»}
    Установленные версии: 2.6.5(2)^d{tbz2}(12:18:34 10.08.2016)(X adobe-cff bzip2 cleartype_hinting png static-libs -bindist -debug -doc -fontforge -harfbuzz -infinality -utils ABI_MIPS="-n32 -n64 -o32" ABI_PPC="-32 -64" ABI_S390="-32 -64" ABI_X86=«32 64 -x32»)
    Домашняя страница: http://www.freetype.org/
    Описание: A high-quality and portable font engine


  1. Kesantielu
    02.10.2016 11:39
    +1

    На Windows без Mactype просто невозможно работать, шрифты непомерно ужасны.


    1. solver
      02.10.2016 13:08

      Вот спасибо за наводочку. Смог настроить нормально шрифты наконец.


  1. Jeditobe
    02.10.2016 11:40
    +1

    Я почитал вашу статью и почитал новость на сайте проекта. Никак не могу понять. Как это

    Так появился алгоритм обработки инструкций TrueType v40. Его принцип прост как копейка — полное игнорирование всех инструкций горизонтального сглаживания. Никакого субпиксельного сглаживания.
    ,
    согласуется с этим:
    The most important change is a new bytecode hinting mode for TrueType fonts that finally activates subpixel hinting (a.k.a. ClearType hinting) by default.
    .

    Есть оно или нет?

    К слову, в ReactOS моментально обновили freetype до версии 2.7.


    1. temujin
      02.10.2016 13:47

      Я так понимаю, что достигается эффект субпиксельного сглаживания на манер ClearType тем, что все инструкции горизонтального сглаживания (horisontal hinting) полностью игнорируются в новом алгоритме. При этом интепретатор v40 не повторяет оригинальных инструкций субпиксельного сглаживания ClearType. Вероятно, это и имеет в виду мейнтейнер.

      There actually is no subpixel hinting going on here. Shock.


  1. bertmsk
    02.10.2016 12:09
    +6

    Отрадно видеть что есть еще люди, ностальгирующие по тёплым ламповым ЭЛТ мониторам с несведением луча, когда вместо мелкого текста была кашка из пикселей, а большой текст покрывался RGB-ореолом.
    Классический пример придумывания проблемы и отважного её решения.


    1. Athari
      02.10.2016 15:49

      Ты за алиасинг что ли?


  1. dustalov
    02.10.2016 14:04

    Стоит добавить ссылку на оригинальное сообщение “A small post about the v40 interpreter” из списка рассылки freetype-devel, адаптацией которого является данная запись.


    1. temujin
      02.10.2016 16:25
      +1

      Я не против, но в я отталкивался от https://www.freetype.org/freetype2/docs/subpixel-hinting.html, ссылка на нее присутствует. А та, в свою очередь, основана на листе freetype-devel, но его-то я как раз не читал. Спасибо что указали первоисточник.


  1. Erelecano
    03.10.2016 12:08
    +1

    Каждый раз, когда я вижу байки про красивые виндовые шрифты я перезагружаюсь под винду и смотрю, думаю вдруг что-то поменялось. Но, нет, на 32" при 1920x1080 шрифты в винде выглядят так, что глаза вытекают и никакой ClearType не помогает, а тут же под линухой все выглядит хорошо.


    1. springimport
      04.10.2016 19:42

      Интересно, как можно пользоваться 32" монитором с таким низким разрешением и говорить о качестве шрифтов?


  1. Meklon
    04.10.2016 07:57

    Черт, мне не везет со шрифтами. Кто-то сидит на Kubuntu? Я на Robotics остановился, но это не то все равно. Легкий хинтинг.


    1. Erelecano
      04.10.2016 10:19

      Kubuntu — инсталяционный диск Ubuntu Linux с KDE в качестве DE из коробки и не более. В Ubuntu Linux при использовании Gnome3, Xfce4 и Mate проблем со шрифтами на разных компах и разных мониторах не вижу, ради интереса поставьте себе тот же xfce4 в качестве второго DE и посмотрите что будет там, потому что может просто кеды гадят, а в системе у вас все хорошо.

      P.S. Использую шрифты Ubuntu и DejaVu


      1. Meklon
        04.10.2016 19:24

        Мне казалось, что патчи как раз DE-специфичны. Очень отличаются шрифты на KDE и Unity.


        1. Erelecano
          04.10.2016 19:29

          Пакет freetype один. Шрифты могут быть разные в Qt и в прочем, отсюда у вас такое впечатление. А freetype он один в дистрибутиве.

          apt-cache policy libfreetype6
          libfreetype6:
          Installed: 2.6.1-0.1ubuntu2
          Candidate: 2.6.1-0.1ubuntu2
          Version table:
          *** 2.6.1-0.1ubuntu2 500
          500 http://ubuntu.mirrors.ovh.net/ftp.ubuntu.com/ubuntu xenial/main amd64 Packages
          100 /var/lib/dpkg/status


          1. Meklon
            05.10.2016 00:14

            Спасибо. Впилил infinality и DejaVu Sans. Стало лучше.


            1. Erelecano
              06.10.2016 07:19
              +1

              Мне нравится, как у вас получилось, рад, что оказался полезным.


    1. BlackRaven86
      05.10.2016 02:47

      Не знаю как конкретно в Kubuntu, но в Plasma 5.8 по умолчанию сделали шрифт Noto (раньше у меня был DejaVu). Выглядит неплохо.


      1. Meklon
        05.10.2016 15:20

        Я еще из бэкпортов не вытащил. Сижу на стабильной 5.6.5


  1. tmnhy
    04.10.2016 14:13

    FreeType 2.7 — превосходное качество шрифтов Linux

    Это вы загнули.

    Собрал 2.7, отключил infinality, включил cleartype_hinting.
    Впечатления, непривычно «мыльно».


  1. AlexandrRS
    05.10.2016 23:35

    Это как-то повлияет на качество начертания шрифтов Java приложений?


    1. Erelecano
      06.10.2016 07:20

      Нет. Жава все рисует сама, что под виндой, что под линухой, отсюда и ужасные шрифты в жаба-приложениях.


      1. Meklon
        07.10.2016 12:10


        Это совсем беда.


        1. Erelecano
          07.10.2016 12:23
          +2

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


          1. grossws
            07.10.2016 14:30

            Сильно зависит от приложения и используемой jre (у sun/oracle со шрифтами было лучше чем в openjdk). В той же idea используется патченная openjdk:



            1. Erelecano
              07.10.2016 15:31

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