freetype
[Top][All Lists]
Advanced

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

Re: [ft] Seeking answers on subpixel rendering


From: chojin
Subject: Re: [ft] Seeking answers on subpixel rendering
Date: Mon, 26 Mar 2007 10:49:14 -0700 (PDT)

Hmm those didn't work, try again:

http://www.designloft.com.au/files/freetype.png
http://www.designloft.com.au/files/disksize.png


chojin wrote:
> 
> David,
> 
> I can't thank you enough for your detailed response. It answered a lot of
> my questions and has been extremely helpful.
> 
> I think you are very correct about the screen calibrations and the fact
> that you mention mac screens confirms it, I was using a mac screen for
> some of the testing (and also a Benq).
> 
> Interestingly, in the screenshots you provided, I personally can't stand
> the last two (lite grayscale/lcd) screenshots you've taken, and prefer the
> first two (the subpix version is actually quite nice). If you look at the
> stems in the 'lite' shot, a lot of the glyphs have different stem widths
> (some for example, spanning two pixels at 50% black, some spanning one
> stem at 100% black). Kerning is mixed on both, with some kerns in the
> 'normal' screens being more comfortable, and some on the 'lite' being a
> better fit. It's that kind of thing that personally drives typophiles like
> myself mad trying to work out. I think basically, the overall letterforms
> and spacing looking right are more important to designers/typographers
> than excessive hinting which can produce more readable but ugly, mishapen
> letters.
> 
> The patches you have provided have helped somewhat (I did find them
> earlier), after a great deal of messing about and recompiling several
> times I am fairly comfortable with my fonts at the moment, I've uploaded
> examples of my desktop also.
> 
>  http://www.nabble.com/file/7429/freetype.png 
>  http://www.nabble.com/file/7430/disksize.png 
> 
> Some of the fonts, converted with fontographer from my osx machines (so I
> am allowed to do this... I think), have come out the best. As an aside
> about qt's rendering, it's fairly unusable for me, I know you have
> patches/wrappers to make everything use freetype though and will
> investigate these further.
> 
> Thankyou very much for your time and patience.
> 
> Rob
> 
> 
> David Turner-5 wrote:
>> 
>> Hello Chojin,
>> 
>> On Thu, 22 Mar 2007 21:31:53 -0700 (PDT), "chojin"
>> <address@hidden> said:
>>> 
>>> I am a long time windows user who has, around once a year for the past 6
>>> or so years, tried to make an effort to switch my business (graphic
>>> design
>>> and web development) over to linux and the one thing consistently
>>> holding me
>>> back is font rendering... freetype is the best attempt so far, but is SO
>>> far away from windows and osx.
>>> 
>>> I have done my best to educate myself on freetype and so on, and one of
>>> the few things I'm left speechless about is subpixel fonts. (Yes I am
>>> using
>>> an LCD, yes the bars are RGB, yes subpix is calibrated correctly for it
>>> -
>>> this is in regards to subpixel rendering as a method itself and not my
>>> specific implementation).
>>> 
>>> Basically, it does nothing. It's a massive scam. It just produces slight
>>> annoying color ringing around fonts and hinders readibility. As a test,
>>> here is a cooltype rendered font, then the same paragraph below it in
>>> grayscale:
>>> 
>>> http://www.nabble.com/file/7364/whysubpixelsucks.png 
>>> 
>>> As you can see, the grayscale is far more comfortable to read, with no
>>> annoying ringing. Yet, when subpixel rendering is turned off in
>>> freetype,
>>> the actual RENDERING changes. Why is this? Shouldn't subpixel just
>>> convert some of the antialiasing into fringe colors, corresponding to
>>> the
>>> adjacent rgb bars?
>>> 
>>> What I am saying is, shouldn't type libs focus on antialiasing and
>>> kerning (which in themselves have a long, long, long way to go before
>>> they hit
>>> the same level that win/osx have) and drop the (possibly patent
>>> infringing)
>>> subpixel stuff? Does the bytecode interpreter have anything to do with
>>> this kind of antialiasing? Could an autohinter produce the quality of
>>> antialiasing shown above?
>>> 
>>> Maybe I am confused but that's why I posted here - the best place to get
>>> an answer would be from freetype users themselves.
>>> -- 
>> 
>> Well, well, I don't know exactly where to start, so I'll start randomly.
>> The short version is that this is an on-going battle, and that FreeType
>> probably
>> isn't to be blamed for most of the issues you're facing, and that a
>> solution
>> is probable though I wouldn't bet to see it deployed soon.
>> 
>> * First, on the topic of LCD filtering itself: its effect depends on a
>> lot of
>>   things, like the fabric of your LCD screen, your overall display gamma,
>>   the text color/background being used, the eye-screen distance (really)
>> and
>>   your own perceptual sensitivity to the color "fringes" themselves.
>> 
>>   I've tried to see the example image you posted with two different
>> monitors.
>>   On my pretty old 13" laptop, the LCD text is clearer than the gray one
>> that
>>   appears more blurry. However, on my work 24" Dell, the difference is a
>> lot
>>   less significant. In no way is the "gray" text "far more conformtable"
>> to
>>   read to me.
>> 
>>   Similarly, I have a 15" MacBook Pro for work. Its display is very
>> bright and
>>   colourful, but it displays LCD text with very visible color fringes to
>> my
>>   eye (and the "gray" text is blurry anyway). However, when I hook up the
>> same
>>   computer to my 24" Dell, everything looks really good.
>> 
>>   I have tried to play with display settings to change that, but can't
>> reproduce
>>   the same quality on the Mac's screen in any way. Some other people
>> don't seem
>>   to see any colors on the Mac.
>> 
>>   So I don't agree it's massive scam, it just depends on lots of factors.
>> 
>> 
>> * Second, you are true that LCD filtering and hinting are two separate
>> issues.
>>   The fact that you select "LCD rendering" in Linux and see some changes
>> in text
>>   rendering come from libraries like libXft, Cairo or Qt that use
>> FreeType
>>   and your font settings incorrectly.
>> 
>>   Another problem is the design of the font preferences dialog which is
>> simply
>>   misleading, and from a user-point of view, buggy. However, that's a
>> different
>>   problem I would prefer not to address here.
>> 
>> 
>> * regarding the very visible color fringes you're seeing in Linux, they
>> come from
>>   the fact that the default LCD filter being used in libXft and Cairo was
>> designed
>>   solely for the case of TrueType fonts with very high-quality bytecoded
>> hints.
>> 
>>   this means that you need to enable the bytecode intepreter to get
>> anything
>>   sensible out of it. If you don't, you'll see these atrocious
>> blue/yellow fringes
>>   all over the place. Even if you do, you'll see them on a lot of fonts
>> that don't
>>   have high-quality hints anyway.
>> 
>>   I've provided patches to these libraries to get rid of this problem a
>> long time
>>   ago. For some reason, these have not been integrated in the respective
>> libraries.
>>   See http://david.freetype.org/lcd/ for details.
>> 
>>   A better filter works consistently across all fonts and hinting modes,
>> though it
>>   can produce slightly more blurry glyphs in the high-quality case.
>> recent versions
>>   of FreeType provide such a filter, but it is not used by Cairo and
>> LibXft yet.
>> 
>> 
>> * As an example, here are four snapshots of my current desktop. They
>> represent the
>>   same content rendered through four different hinting/rendering
>> combinations and
>>   should give you an idea of what is possible with FreeType:
>> 
>>     http://david.freetype.org/freetype/example-normal-gray.png
>>     http://david.freetype.org/freetype/example-normal-lcd.png
>>     http://david.freetype.org/freetype/example-light-gray.png
>>     http://david.freetype.org/freetype/example-light-lcd.png
>> 
>>   note that some pretty important label displacements between versions,
>> these come
>>   from what appears a bug in Firefox which is somewhat confused when
>> asked to reload
>>   a page after you alter your font settings (it does that all the time,
>> even on the
>>   simplest pages).
>> 
>> * My personal favorite is to use the "light" hinting mode, with or
>> without LCD filtering
>>   depending on the screen I'm using (definitely on my home laptop, not on
>> the 24" Dell).
>>   The rendering is very close to what you'll get with Mac OS X, with the
>> exception that
>>   you won't see sub-pixel positioning. 
>> 
>>   Most people won't see a difference anyway. And though it's possible to
>> do that with
>>   FreeType (the auto-hinter even supports sub-pixel positioned hinting,
>> though this
>>   is not usable from the API at the moment), it's the rest of the
>> graphics stack on Linux
>>   that is not ready to use it.
>> 
>> * I still force myself to use the "normal" hinting mode, since I like to
>> eat my own dog
>>   food to be able to improve it as much as possible.
>> 
>> * Regarding matching ClearType rendering, this is more subtle than it
>> seems because:
>> 
>>   - ClearType in Vista is different from ClearType on XP; at a minimum,
>> the LCD filter
>>     can be different, and it seems Vista supports sub-pixel positioning
>> now (both in 
>>     LCD and "gray" modes)
>> 
>>   - supporting ClearType-like rendering is possible using FreeType, but
>> must be essentially
>>     done on top of it. Basically you need to produce bytecode-hinted text
>> at 3x the horizontal
>>     resolution (which is different that dilating 3x horizontally glyph
>> outlines loaded at 1x
>>     the resolution), then apply the LCD filter. There are also a few
>> interpreter bytecodes
>>     whose behaviour changes, but nothing too drastic.
>> 
>>     there are however some issues regarding the sub-pixel advances and
>> how they can be
>>     used to perform text layout.
>> 
>>   - more importantly, Microsoft has several patents covering the
>> ClearType "technology"
>>     (which do not amount to a lot of things, by the way). Some of the
>> claims in these
>>     patents are very broad and likely have prior art. For example, I've
>> seen sub-pixel
>>     text rendering on delta-nabla LCD screens a *long* time before
>> ClearType was
>>     released.
>> 
>>     however, certain claims might not be easily invalidated, and it's
>> unknown at the time
>>     wether it's possible to implement something that doesn't infringe on
>> them. Also, the
>>     prior art, if it exists, need to be clearly identified.
>> 
>>   - since FreeType is used in many embedded devices, I don't want to
>> enable a feature that
>>     could cost unsuspecting developers millions in a few years when
>> Microsoft feels it's
>>     "payback" time. That's why the LCD filtering in FreeType is disabled
>> in all default
>>     builds and you need to enable it manually (just like the bytecode
>> interpreter).
>> 
>>     It seems that libXft and Cairo authors, which perform their own LCD
>> filtering in their
>>     respective code, don't feel it's important. that's their point of
>> view, and I don't
>>     share it.
>> 
>>     Also, because of the patents issue, I'm not going to lose my time on
>> this "feature".
>>     If someone wants to implement it in Cairo/LibXft/Qt/Whatever, please
>> do it; I don't
>>     really care...
>> 
>> Voilà, I don't know if this answers all your questions, but it's already
>> plenty of info
>> to digest. I advise you to lobby the Cairo/LibXft authors if you want
>> better rendering
>> results...
>> 
>> - David Turner
>> - The FreeType Project  (www.freetype.org)
>> 
>> 
>> _______________________________________________
>> Freetype mailing list
>> address@hidden
>> http://lists.nongnu.org/mailman/listinfo/freetype
>> 
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Seeking-answers-on-subpixel-rendering-tf3451933.html#a9678056
Sent from the Freetype - User mailing list archive at Nabble.com.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]