Страница 1 из 2

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 скачиваний
На выходе получаем:
Изображение
Изображение

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

Добавлено: 2009-04-13 11:33:57
f_andrey
По моему какие то страшненькие шрифты, даже на мой непритязательный вкус, или их так побило сжатием?
Например меня в принципе вполне устраивают стандартные, webfonts и djvu

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

Добавлено: 2009-04-14 11:43:33
zingel
зачетненько

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

Добавлено: 2009-04-14 11:52:51
Alex Keda
неплохо бы ту же страницу без этого показать - для сравнения

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.

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

Добавлено: 2009-04-14 16:38:52
terminus
Не знаю кому как, но мне сглаживание не нравится.
Возникает субьективный дискомфорт от "смазанной" картинки - глаза начинают пытаться "наводить резкость", устают. :cz2:

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

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

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

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

Добавлено: 2009-04-14 17:34:29
Гость
Гость (автор темы), ты из убунты что ль патчи спер? ;)

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

Добавлено: 2009-04-14 17:43:30
terminus
Ыыы. :smile:

А в случае с маленьким текстом? Не ну это все, конечно же, ИМХО...

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

Добавлено: 2009-04-14 17:55:03
paradox
гости между собой разговаривают....
еще чуть чуть и за ники гость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:12
_Andy
http://rootshell.be/~sda00/fnt.html
Не отсюда, случаем, информацию брали?

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

Добавлено: 2009-04-14 18:11:40
Гость
вот как оно выглядит в xterm'е без патчиков и с ними
Изображение
появились градиентовые полоски по краям букв, где нет сглаживания

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

Добавлено: 2009-04-14 18:12:39
_Andy
Да, едва не забыл, шревты - говно.

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) не будут затронуты.

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

Добавлено: 2009-04-14 19:18:21
_Andy
Гость писал(а):
_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

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

Добавлено: 2009-04-15 0:44:48
m.reed
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, который не надо указывать при сборке с использованием патча в первом сообщении) ничего патчить и пересобирать не надо.
мне с патчиками нравится больше ;)

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

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

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

Добавлено: 2010-01-07 1:27:55
m.reed
Патчи новые, результат всё тот же:
Изображение
Изображение
На этот раз честно попёрто из бубунты :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 до сих пор лежат.

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

Добавлено: 2010-01-07 1:30:43
m.reed
Сами патчи (поскольку поставлен лимит на количество прикрепляемых файлов) отдельно.

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

Добавлено: 2010-03-07 17:52:17
SergeySL

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

Добавлено: 2010-04-21 13:24:06
Гость
да кстати
столкнулся под виндовым FF3 в котором нет сглаживания, после IE от FF3 глаза болели уже через несколько минут
поэтому сглаживание тру