ClearType(tm): Настройка субпиксельного рендеринга

FreeBSD и прочие в роли десктопа.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Гость
проходил мимо

ClearType(tm): Настройка субпиксельного рендеринга

Непрочитанное сообщение Гость » 2009-04-13 11:20:29

1. Обновите порты.

2. Патчим freetype2 -- http://cvsweb.freebsd.org/ports/print/freetype2
(просто скачайте архив, распакуйте его и положите файлы в директорию files этого порта)
patch-freetype2.tar.gz
(1.03 КБ) 64 скачивания
далее make clean && make deinstall && make reinstall clean

3. Настраиваем fontconfig -- http://cvsweb.freebsd.org/ports/x11-fonts/fontconfig
Создаём в домашней директории пользователя файл .fonts.conf с таким содержанием:

Код: Выделить всё

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
	<!--
	antialias	 Bool	 Whether glyphs can be antialiased
	hinting		 Bool	 Whether the rasterizer should use hinting
	hintstyle	 Int	 Automatic hinting style
	autohint	 Bool	 Use autohinter instead of normal hinter
	rgba		 Int	 unknown, rgb, bgr, vrgb, vbgr, none - subpixel geometry
	lcdfilter	 Int	 Type of LCD filter
	-->
	<match target="font">
	<edit mode="assign" name="antialias"> <bool>true</bool>		</edit>
	<edit mode="assign" name="hinting">   <bool>true</bool>		</edit>
	<edit mode="assign" name="hintstyle"> <const>hintfull</const>	</edit>
	<edit mode="assign" name="autohint">  <bool>false</bool>	</edit>
	<edit mode="assign" name="rgba">      <const>rgb</const>	</edit>
	<edit mode="assign" name="lcdfilter"> <const>lcddefault</const>	</edit>
	</match>
</fontconfig>
4. Патчим libXft -- http://cvsweb.freebsd.org/ports/x11-fonts/libXft
смотрите пункт 2, патч
patch-zz-libXft_newspr_lcd_filter.gz
(6.27 КБ) 49 скачиваний
5. Патчим cairo -- http://cvsweb.freebsd.org/ports/graphics/cairo
смотрите пункт 2, патч
patch-zz-cairo_newspr_lcd_filter.gz
(7.34 КБ) 48 скачиваний
На выходе получаем:
Изображение
Изображение

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
f_andrey
майор
Сообщения: 2651
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

Re: ClearType(tm): Настройка субпиксельного рендеринга

Непрочитанное сообщение f_andrey » 2009-04-13 11:33:57

По моему какие то страшненькие шрифты, даже на мой непритязательный вкус, или их так побило сжатием?
Например меня в принципе вполне устраивают стандартные, webfonts и djvu
Вложения
screenshot-2009.04.13-12.30.40.png
Если ваша тема перенесена, то смотри http://forum.lissyara.su/viewtopic.php?f=1&t=32308

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: ClearType(tm): Настройка субпиксельного рендеринга

Непрочитанное сообщение zingel » 2009-04-14 11:43:33

зачетненько
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35466
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: ClearType(tm): Настройка субпиксельного рендеринга

Непрочитанное сообщение Alex Keda » 2009-04-14 11:52:51

неплохо бы ту же страницу без этого показать - для сравнения
Убей их всех! Бог потом рассортирует...

Гость
проходил мимо

Re: ClearType(tm): Настройка субпиксельного рендеринга

Непрочитанное сообщение Гость » 2009-04-14 16:31:46

Гость писал(а):2. Патчим freetype2 -- http://cvsweb.freebsd.org/ports/print/freetype2
(просто скачайте архив, распакуйте его и положите файлы в директорию files этого порта)
patch-freetype2.tar.gz
далее make clean && make deinstall && make reinstall clean
А можно узнать чем оно отличается от простого использования

Код: Выделить всё

.if defined(WITH_LCD_FILTERING)
CFLAGS+=        -DFT_CONFIG_OPTION_SUBPIXEL_RENDERING
.endif
кое уже доступно в порте и включении LCD filtering как описано в примере в man'е fonts-conf(5)?
Гость писал(а):3. Настраиваем fontconfig -- http://cvsweb.freebsd.org/ports/x11-fonts/fontconfig
Создаём в домашней директории пользователя файл .fonts.conf с таким содержанием:

Код: Выделить всё

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
	<!--
	antialias	 Bool	 Whether glyphs can be antialiased
	hinting		 Bool	 Whether the rasterizer should use hinting
	hintstyle	 Int	 Automatic hinting style
	autohint	 Bool	 Use autohinter instead of normal hinter
	rgba		 Int	 unknown, rgb, bgr, vrgb, vbgr, none - subpixel geometry
	lcdfilter	 Int	 Type of LCD filter
	-->
	<match target="font">
	<edit mode="assign" name="antialias"> <bool>true</bool>		</edit>
	<edit mode="assign" name="hinting">   <bool>true</bool>		</edit>
	<edit mode="assign" name="hintstyle"> <const>hintfull</const>	</edit>
	<edit mode="assign" name="autohint">  <bool>false</bool>	</edit>
	<edit mode="assign" name="rgba">      <const>rgb</const>	</edit>
	<edit mode="assign" name="lcdfilter"> <const>lcddefault</const>	</edit>
	</match>
</fontconfig>
я бы такое пихал /usr/local/etc/fonts/fonts.{avail,d}, но, ЕМНИП, первые три и так стоят по дефолту с этими значениями. Единственное, что нужно трогать - rgba.

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: ClearType(tm): Настройка субпиксельного рендеринга

Непрочитанное сообщение terminus » 2009-04-14 16:38:52

Не знаю кому как, но мне сглаживание не нравится.
Возникает субьективный дискомфорт от "смазанной" картинки - глаза начинают пытаться "наводить резкость", устают. :cz2:
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Гость
проходил мимо

Re: ClearType(tm): Настройка субпиксельного рендеринга

Непрочитанное сообщение Гость » 2009-04-14 17:28:30

terminus писал(а):Не знаю кому как, но мне сглаживание не нравится.
Возникает субьективный дискомфорт от "смазанной" картинки - глаза начинают пытаться "наводить резкость", устают. :cz2:
Вот примеры:
несглаженной картинки
Изображение
сглаженной
Изображение
сглаженной и попиксельным фильтрованием
Изображение

отличия между двумя последними (сделано с помощью x11/xmag)
Изображение


Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: ClearType(tm): Настройка субпиксельного рендеринга

Непрочитанное сообщение terminus » 2009-04-14 17:43:30

Ыыы. :smile:

А в случае с маленьким текстом? Не ну это все, конечно же, ИМХО...
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: ClearType(tm): Настройка субпиксельного рендеринга

Непрочитанное сообщение paradox » 2009-04-14 17:55:03

гости между собой разговаривают....
еще чуть чуть и за ники гость1 гость2 гость3 буду биться)))
вы хоть какие то имена себе придумайте....

Гость
проходил мимо

Re: ClearType(tm): Настройка субпиксельного рендеринга

Непрочитанное сообщение Гость » 2009-04-14 17:57:01

terminus писал(а):А в случае с маленьким текстом?
оно и с маленьким отвратно, я о DejaVu Sans Mono. TTF шрифты без сглаживания смотрятся ужасно, а не TTF не поддерживают больших разрешений (terminus убог при размере больше 14).


Гость
проходил мимо

Re: ClearType(tm): Настройка субпиксельного рендеринга

Непрочитанное сообщение Гость » 2009-04-14 18:11:40

вот как оно выглядит в xterm'е без патчиков и с ними
Изображение
появились градиентовые полоски по краям букв, где нет сглаживания


Гость
проходил мимо

Re: ClearType(tm): Настройка субпиксельного рендеринга

Непрочитанное сообщение Гость » 2009-04-14 18:28:34

_Andy писал(а):Да, едва не забыл, шревты - говно.
monaco - пропритерный, ничего не поделать. Предложишь лучше?

ps, странно, в firefox3 шрифты стали мыльными (subpixel filtering) только после lcdfilter=lcddefault в ~/.fonts.conf, на xterm же это никак не повлияло
итого всего две опции нужны в конфиге: lcdfilter и rgba, остальное и так стоит по дефолту

Гость
проходил мимо

Re: ClearType(tm): Настройка субпиксельного рендеринга

Непрочитанное сообщение Гость » 2009-04-14 18:42:00

Кстати, если использовать ~/.fonts.conf вместо /usr/local/etc/fonts/conf.{avail,d}, то фильтрование будет доступно только после логина в Display Manager'е (KDM, GDM, XDM). Приложения, кои запускаются с правами рута (Xserver, DM, etc) не будут затронуты.

_Andy
проходил мимо

Re: ClearType(tm): Настройка субпиксельного рендеринга

Непрочитанное сообщение _Andy » 2009-04-14 19:18:21

Гость писал(а):
_Andy писал(а):Да, едва не забыл, шревты - говно.
monaco - пропритерный, ничего не поделать. Предложишь лучше?
Да ладно, это я так, мем вспомнил. У меня Verdana везде. Моноширинный - monospace. Monaco был дернут из OS X?

Гость
проходил мимо

Re: ClearType(tm): Настройка субпиксельного рендеринга

Непрочитанное сообщение Гость » 2009-04-14 20:01:31

_Andy писал(а):Monaco был дернут из OS X?
ага, по-моему выглядит лучше чем DejaVu Sans Mono, местами (циферки, скобки, тильда). Например, как выглядит символ `@' (at) , `*' (asterisk) мне совсем не нравится.
тут есть скрин Monaco: http://www.linux.org.ru/view-message.jsp?msgid=3566546

m.reed
проходил мимо
Сообщения: 4
Зарегистрирован: 2009-04-13 11:09:22

Re: ClearType(tm): Настройка субпиксельного рендеринга

Непрочитанное сообщение m.reed » 2009-04-15 0:44:48

lissyara писал(а):неплохо бы ту же страницу без этого показать - для сравнения
Смотрите сообщение f_andrey, там более-менее станадартный вариант.
Гость писал(а):
Гость писал(а):2. Патчим freetype2 -- http://cvsweb.freebsd.org/ports/print/freetype2
(просто скачайте архив, распакуйте его и положите файлы в директорию files этого порта)
patch-freetype2.tar.gz
далее make clean && make deinstall && make reinstall clean
А можно узнать чем оно отличается от простого использования

Код: Выделить всё

.if defined(WITH_LCD_FILTERING)
CFLAGS+=        -DFT_CONFIG_OPTION_SUBPIXEL_RENDERING
.endif
кое уже доступно в порте и включении LCD filtering как описано в примере в man'е fonts-conf(5)?
Гость писал(а):3. Настраиваем fontconfig -- http://cvsweb.freebsd.org/ports/x11-fonts/fontconfig
Создаём в домашней директории пользователя файл .fonts.conf с таким содержанием:

Код: Выделить всё

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
	<!--
	antialias	 Bool	 Whether glyphs can be antialiased
	hinting		 Bool	 Whether the rasterizer should use hinting
	hintstyle	 Int	 Automatic hinting style
	autohint	 Bool	 Use autohinter instead of normal hinter
	rgba		 Int	 unknown, rgb, bgr, vrgb, vbgr, none - subpixel geometry
	lcdfilter	 Int	 Type of LCD filter
	-->
	<match target="font">
	<edit mode="assign" name="antialias"> <bool>true</bool>		</edit>
	<edit mode="assign" name="hinting">   <bool>true</bool>		</edit>
	<edit mode="assign" name="hintstyle"> <const>hintfull</const>	</edit>
	<edit mode="assign" name="autohint">  <bool>false</bool>	</edit>
	<edit mode="assign" name="rgba">      <const>rgb</const>	</edit>
	<edit mode="assign" name="lcdfilter"> <const>lcddefault</const>	</edit>
	</match>
</fontconfig>
я бы такое пихал /usr/local/etc/fonts/fonts.{avail,d}, но, ЕМНИП, первые три и так стоят по дефолту с этими значениями. Единственное, что нужно трогать - rgba.
Скачайте патч, да посмотрите.
Вариант с ~/.fonts.conf лучше, поскольку распространяется только на конкретного пользователя, причём там заданы значения явно, а не просто использованы некоторые, которые по умолчанию и так уже есть.
Гость писал(а):Гость (автор темы), ты из убунты что ль патчи спер? ;)
Из арча, а там спёрли из Gentoo, а те в свою очередь из Ubuntu.
_Andy писал(а):http://rootshell.be/~sda00/fnt.html
Не отсюда, случаем, информацию брали?
Нет.

Да, и ещё: на некоторых мониторах lcdlight выглядит лучше чем lcddefault, пробуйте. Ну и конечно если вас устраивает тот ClearType(tm), который по умолчанию (получаемый компилированием print/freetype2 с параметром WITH_LCD_FILTERING=yes, который не надо указывать при сборке с использованием патча в первом сообщении) ничего патчить и пересобирать не надо.

Гость
проходил мимо

Re: ClearType(tm): Настройка субпиксельного рендеринга

Непрочитанное сообщение Гость » 2009-04-15 3:47:43

m.reed писал(а):Вариант с ~/.fonts.conf лучше, поскольку распространяется только на конкретного пользователя,
зато часть приложений остается в пролете, например XDM. Впрочем, для отладки нужной конфигурации ~/.fonts.conf незаменим.
m.reed писал(а):причём там заданы значения явно, и не использованы некоторые, которые по умолчанию и так уже есть.
зачем было трогать hinting вообще?

Код: Выделить всё

$ FC_DEBUG=4 xterm | fgrep -ehint -eantialias
...
        antialias: FcTrue(s)
        hintstyle: 3(i)(s)
        hinting: FcTrue(s)
        autohint: FcFalse(s)
...
вот такой вот дефолт. Ах, забыл показать что грузится

Код: Выделить всё

$ ls -1 conf.d/*hint*
20-unhint-ipattfonts.conf
20-unhint-small-dejavu-sans-mono.conf
20-unhint-small-dejavu-sans.conf
20-unhint-small-dejavu-serif.conf
20-unhint-small-vera.conf

$ FC_DEBUG=1024 xterm
        Loading config file /usr/local/etc/fonts/fonts.conf
        Scanning config dir /usr/local/etc/fonts/conf.d
        Loading config file /usr/local/etc/fonts/conf.d/10-sub-pixel-lcdfilter-default.conf
        Loading config file /usr/local/etc/fonts/conf.d/10-sub-pixel-rgb.conf
        Loading config file /usr/local/etc/fonts/conf.d/20-fix-globaladvance.conf
        Loading config file /usr/local/etc/fonts/conf.d/20-unhint-ipattfonts.conf
        Loading config file /usr/local/etc/fonts/conf.d/20-unhint-small-dejavu-sans-mono.conf
        Loading config file /usr/local/etc/fonts/conf.d/20-unhint-small-dejavu-sans.conf
        Loading config file /usr/local/etc/fonts/conf.d/20-unhint-small-dejavu-serif.conf
        Loading config file /usr/local/etc/fonts/conf.d/20-unhint-small-vera.conf
        Loading config file /usr/local/etc/fonts/conf.d/30-metric-aliases.conf
        Loading config file /usr/local/etc/fonts/conf.d/30-urw-aliases.conf
        Loading config file /usr/local/etc/fonts/conf.d/40-nonlatin.conf
        Loading config file /usr/local/etc/fonts/conf.d/45-latin.conf
        Loading config file /usr/local/etc/fonts/conf.d/49-sansserif.conf
        Loading config file /usr/local/etc/fonts/conf.d/50-user.conf
        Loading config file /home/luser/.fonts.conf
        Loading config file /usr/local/etc/fonts/conf.d/51-local.conf
        Loading config file /usr/local/etc/fonts/conf.d/57-dejavu-sans-mono.conf
        Loading config file /usr/local/etc/fonts/conf.d/57-dejavu-sans.conf
        Loading config file /usr/local/etc/fonts/conf.d/57-dejavu-serif.conf
        Loading config file /usr/local/etc/fonts/conf.d/60-latin.conf
        Loading config file /usr/local/etc/fonts/conf.d/62-fonts-ipattfonts.conf
        Loading config file /usr/local/etc/fonts/conf.d/65-fonts-persian.conf
        Loading config file /usr/local/etc/fonts/conf.d/65-nonlatin.conf
        Loading config file /usr/local/etc/fonts/conf.d/69-unifont.conf
        Loading config file /usr/local/etc/fonts/conf.d/80-delicious.conf
        Loading config file /usr/local/etc/fonts/conf.d/90-synthetic.conf
dejavu'вские конфиги из ports/133146
10-sub-pixel-lcdfilter-default.conf - единственный мой файлик
m.reed писал(а):Из арча, а там спёрли из Gentoo, а те в свою очередь из Ubuntu.
Хмм, патч для freetype2 взят отсюда (packages.php?ID=12283)? Я оттуда взял #undef FT_CONFIG_OPTION_OLD_INTERNALS.
m.reed писал(а):Да, и ещё: на некоторых мониторах lcdlight выглядит лучше чем lcddefault, пробуйте.
у меня зеленого прибавилось. Вот скрин с ЛОРа:
Изображение
слева lcdlight, справа lcddefault

Можно еще потюнить rgba: rgb, vrgb, bgr, vbgr, где префикс *v* - vertical.
m.reed писал(а):Ну и конечно если вас устраивает тот ClearType(tm), который по умолчанию (получаемый компилированием print/freetype2 с параметром WITH_LCD_FILTERING=yes, который не надо указывать при сборке с использованием патча в первом сообщении) ничего патчить и пересобирать не надо.
мне с патчиками нравится больше ;)

m.reed
проходил мимо
Сообщения: 4
Зарегистрирован: 2009-04-13 11:09:22

Re: ClearType(tm): Настройка субпиксельного рендеринга

Непрочитанное сообщение m.reed » 2009-04-15 4:02:57

причём там заданы значения явно, а не просто использованы некоторые, которые по умолчанию и так уже есть.
ответ на ваш вопрос:
зачем было трогать hinting вообще?
Хмм, патч для freetype2 взят отсюда (http://aur.archlinux.org/packages.php?ID=12283)? Я оттуда взял #undef FT_CONFIG_OPTION_OLD_INTERNALS.
Нет.

m.reed
проходил мимо
Сообщения: 4
Зарегистрирован: 2009-04-13 11:09:22

Re: ClearType(tm): Настройка субпиксельного рендеринга

Непрочитанное сообщение m.reed » 2010-01-07 1:27:55

Патчи новые, результат всё тот же:
Изображение
Изображение
На этот раз честно попёрто из бубунты :smile: .
/usr/local/etc/fonts/local.conf: (Напомню что параметры из ~/.fonts.conf распространяются на текущего пользователя, тогда как содержимое этого файла на всю систему, но будте внимательны - значения из файла .fonts.conf, находящегося в директории пользователя переопределяют системные настойки!).
Изменить по вкусу, в начале файла упомянуты возможные значения.

Код: Выделить всё

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!--
	antialias	Bool	Whether glyphs can be antialiased
	hinting		Bool	Whether the rasterizer should use hinting
	autohint	Bool	Use autohinter instead of normal hinter
	hintstyle	Int	Automatic hinting style: hintnone, hintslight, hintmedium, hintfull
	rgba		Int	Subpixel Geometry: unknown, rgb, bgr, vrgb, vbgr, none
	lcdfilter	Int	Type of LCD filter: lcdnone, lcddefault, lcdlight, lcdlegacy

-->
<match target="font">
	<edit mode="assign" name="antialias">	<bool>true</bool>		</edit>
	<edit mode="assign" name="hinting">	<bool>true</bool>		</edit>
	<edit mode="assign" name="autohint">	<bool>true</bool>		</edit>
	<edit mode="assign" name="hintstyle">	<const>hintfull</const>		</edit>
	<edit mode="assign" name="rgba">	<const>rgb</const>		</edit>
	<edit mode="assign" name="lcdfilter">	<const>lcddefault</const>	</edit>
</match>

<match target="font">
	<test compare="more" name="weight">	<const>medium</const>		</test>
	<edit mode="assign"  name="autohint">	<bool>false</bool>		</edit>
</match>

</fontconfig>
Если кому надо - соберу бинарные пакеты, для x86 до сих пор лежат.
Вложения
yandex-cleartype2.png
yandex-cleartype1.png
Последний раз редактировалось m.reed 2010-01-07 1:40:39, всего редактировалось 2 раза.

m.reed
проходил мимо
Сообщения: 4
Зарегистрирован: 2009-04-13 11:09:22

Re: ClearType(tm): Настройка субпиксельного рендеринга

Непрочитанное сообщение m.reed » 2010-01-07 1:30:43

Сами патчи (поскольку поставлен лимит на количество прикрепляемых файлов) отдельно.
Вложения
patch-zz-libXft-ubuntu.gz
(6.09 КБ) 33 скачивания
patch-zz-freetype-ubuntu.gz
(1.11 КБ) 33 скачивания
patch-zz-fontconfig-ubuntu.gz
(1.53 КБ) 33 скачивания
patch-zz-cairo-ubuntu.gz
(7.48 КБ) 34 скачивания


Гость
проходил мимо

Re: ClearType(tm): Настройка субпиксельного рендеринга

Непрочитанное сообщение Гость » 2010-04-21 13:24:06

да кстати
столкнулся под виндовым FF3 в котором нет сглаживания, после IE от FF3 глаза болели уже через несколько минут
поэтому сглаживание тру