[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: про субпиксель но е сглаживани е.



On Tue, Jul 27, 2010 at 03:47:04AM +0400, sergio wrote:
> On 07/25/2010 04:20 AM, Stanislav Maslovski wrote:
>
>>>> Ты вообще в курсе, что значит рендеринг? И как субпиксельный композитный
>>>> рендеринг реализуется?
> Что-то у меня есть подозрение, что от драйвера не зависит наличие  
> сглаживания. XRender это часть иксов. А от драйвера зависит акселерация  
> (exa или xaa) Я не прав?

От драйвера зависит, по крайней мере, корректность определения типа
монитора. По поводу остального конкретно у радеонов см. тут (опция
SubPixelOrder):

http://www.x.org/archive/X11R7.5/doc/man/man4/radeon.4.html

>>> Как спросить у иксов, как они думают, какой у монитора тип?
>> Заглянуть в /var/log/Xorg.0.log?
> Круто! Искать-то что? Или это просто предположение?

(--) Jul 25 14:54:10 NVIDIA(0): Connected display device(s) on GeForce 8400M GS at PCI:1:0:0:
(--) Jul 25 14:54:10 NVIDIA(0):     Seiko (DFP-0)
(--) Jul 25 14:54:10 NVIDIA(0): Seiko (DFP-0): 330.0 MHz maximum pixel clock
(--) Jul 25 14:54:10 NVIDIA(0): Seiko (DFP-0): Internal Dual Link LVDS
(II) Jul 25 14:54:10 NVIDIA(0): Assigned Display Device: DFP-0

>> GTK использует сairo, в сairo свой фильтр (и автор этого фильтра
>> очень долго упирался, но вот совсем недавно его-таки убедили, что
>> стоит следовать стандартам, а не изобретать велосипед).
>
> А что вообще представляет собой этот фильтр? Это алгоритм по которму  
> производится само сглаживание?

Нет, это алгоритм, по которому производится посткоррекция альфа-маски
символа, предварительно растеризованного на сетке с утроенным
горизонтальным (или вертикальным, в зависимости от ориентации дисплея)
разрешением. На шаге растеризации делается и то, что традиционно
называется антиалиасингом (сглаживанием): в простейшем случае,
каждому субпикселу маски (которые получаются прямоугольными, с
соотношением сторон примерно 3 к 1; реальному пикселу соответствуют 3
субпиксела) присваивается значение, пропорциональное проценту его
покрытия.

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

В ходу два типа фильтров: intrapixel и interpixel (или Finite Impulse
Response, FIR). Intrapixel (lcdlegacy, cairo) работают с RGB
значениями в пределах одельных пикселов, поэтому не имеют побочного
эффекта окраски краев у резких однопиксельных линий и лучше подходят
для шрифтов с встроенным байткодом и с hintstyle = hintfull.
Interpixel (FIR) фильтры (типа lcddefault) работают также с RGB
значениями соседних пикселов и лучше подходят к шрифтам без
встроенного байткода и с autohint = yes, hintstyle = hintslight.

> Меня как-то очень смущает, что на lcddefault я не могу смотртеть.
> lcdnone или lcdlegacy гораздо приятнее выглядят, хотя и не всегда.

См. выше. У меня сглаживание отключено для шрифтов меньше 16 пикселов;
hinstyle = hintfull, шрифты ms-corefonts с байткодом. Когда появились
шрифты Liberation, пытался перейти на них, но не прижилось.

ЗЫ: Голусуем:

Кто за:

a) пиксел, пикселы
б) пиксель, пиксели

-- 
Stanislav


Reply to: