13 Replies Latest reply on Jun 22, 2009 9:56 AM by Jeffrey W. Mott

    No anti-aliasing?

    Francisco42

      I have read that the Text Engine introduced with Flash Player 10 is supposed to provide anti-aliasing for devide fonts (i.e. non-embedded fonts).  This is essential for Web applications: without anti-aliasing text looks awful and Flex applications cannot compete with HTML applications.  But fonts that include East-Asian characters cannot be embedded because they take up too much space.  And I don't see how a Web application in 2009 can fail to support East-Asian characters.

       

      Today I tried Flash Builder 4, and created 3 Spark components, of types RichEditableText, RichText, and SimpleText, without embedding any fonts.  All three could be rotated, which I believe means they use the new Text Engine.  But none of them had anti-aliasing (which I checked by looking at how they rendered capital letter W).  Why is this?  Do I have to do something special to get anti-aliasing?  Or is anti-aliaing a feature that will be coming later?

       

      Thanks in advance,

       

      Francisco

        • 1. Re: No anti-aliasing?
          ellamit

          Do you use "ClearType" to smooth edges?

          Open "Display Properties" window.

          Go to "Appearance".

          Click on "Effects"

          Choose "ClearType" to smooth edges.

          • 2. Re: No anti-aliasing?
            Francisco42 Level 1

            I know about ClearType.  This is not about myself seeing an ugly font, it's about my users seeing an ugly font.  I can tell my users about ClearType, but they will never read what I tell them, because they will just go to a competing HTML application that has anti-aliasing built in.

             

            But anyway, anti-aliasing is coming to Flex 4 isn't it???  I've seen the feature touted as one of the main advantages of the Flash Player 10 Text Engine.  Could someone please confirm that it will be coming, and give an ETA?

             

            Thanks in advance,

             

            Francisco

            • 3. Re: No anti-aliasing?
              GordonSmith Level 4

              My understanding is that FTE simply uses ClearType to antialias device fonts, when it is enabled. I don't think it has its own antialiasing capabilities to use when ClearType is turned off. But I'll check with the relevant Player engineers.

               

              Gordon Smith

              Adobe Flex SDK Team

              • 4. Re: No anti-aliasing?
                Flex harUI Adobe Employee

                For me, I had to have cleartype on in FP10 to get antialiased device fonts in Windows, so it is there, but can be turned off by OS settings

                 

                Alex Harui

                Flex SDK Developer

                Adobe Systems Inc.

                Blog: http://blogs.adobe.com/aharui

                • 5. Re: No anti-aliasing?
                  CoreyRLucier Adobe Employee

                  When using device fonts with the new text engine it will use whatever the default rendering configuration and settings are on your particular OS.  If you have ClearType disabled on Windows it will not use sub-pixel anti-aliasing.  If you have font smoothing turned off entirely it will not AA the text.

                   

                  If you use embedded fonts, the player uses its own renderer (which is part of the new text engine), which does not support sub-pixel AA (e.g. ClearType-esque), but is a high quality grayscale AA.  This is the only real option that ensures absolute consistent rendering and quality across multiple platforms (Mac/Windows, etc.).

                   

                  If you require consistent use of sub-pixel AA (a.k.a ClearType-like RGB colors used for AA pixels), you are limited to using TextField's "advanced text rendering" (e.g. antiAliasType).  TextField of course is the legacy text primitive so you won't get any of the new text engine features.

                   

                  -Corey

                  • 6. Re: No anti-aliasing?
                    GordonSmith Level 4

                    Francisco, are you saying that some Windows browsers do antialiasing even when ClearType is turned off? Which ones?

                     

                    Gordon Smith

                    Adobe Flex SDK Team

                    • 7. Re: No anti-aliasing?
                      Francisco42 Level 1

                      Hi Gordon,

                       

                      To answer your question, I've been looking at my screen with a magnifying glass.  Here is what I've seen:

                      - IE7 and IE8 do subpixel anti-aliasing event if ClearType is turned off.  (You can see pixels of black text rendered in various colors.)  IE6 and the latest version of Firefox do not.

                      - To be precise, IE7 and IE8 do subpixel anti-aliasing in the content pane, i.e. in the rendered HTML content.  The browser menus (File, Edit, etc.) do subpixel anti-aliasing only when ClearType is turned on.

                      - In Windows, when ClearType is off, there is still anti-aliasing, but it's grey-scale anti-aliasing rather then subpixel anti-aliasing.  IE6 and Firefox do the grey-scale anti-aliasing when ClearType is off.  IE7 and IE8 use grey-scale anti-aliasing for the browser menus when ClearType is off.

                      - Flex device fonts also use grey-scale anti-aliasing when ClearType is off.  So I was wrong in my earlier message when I complained about there being no anti-aliasing.

                       

                      So now that I've seen all this let me restate my earlier comments:

                      - The default device fonts that Flex uses look ugly if ClearType is off.  (ClearType is off by default in Windows XP.  It is on by default in Windows Vista.)  They look much uglier than the subpixel-anti-aliased fonts of IE7 and IE8.  They also look uglier to me than the fonts used by Firefox, especially the default bold font, but maybe I'm just subconsciously biased now by the desire to make my point

                      - On the Mac, the fonts used by Firefox and Safari look very nice, but the default device font used by Flex (Flex 3) look very ugly.  No question of bias in this case.  A huge problem on the Mac is the spacing of the letters; it's way off; some letters are on top of each other, and there are huge gaps in other places.

                      - Note: According to Wikipedia, MacOS X has subpixel aliasing turned on by default, but Safari and Firefox are not using it, from what I can see with the magnifying glass.

                       

                      But the main point I want to make is this: Adobe is making a terrible mistake by relying on embedded fonts.  YOU CANNOT USE A FONT ON THE WEB THAT CANNOT HANDLE EAST-ASIAN CHARACTERS.  Fonts with embedded characters cannot be embedded because they take up too much space.  For example, I see on the Mac font libary that the size of the Arial Unicode font is 22.2 MB.

                       

                      Btw, if you embed Arial, East-Asian characters are dropped SILENTLY.  This is a NASTY  "feature".  The developer may fail to notice that something is wrong unless he or she is specifically looking for how East-Asian characters are rendered.

                       

                      Hope this helps.

                       

                      Francisco

                      • 8. Re: No anti-aliasing?
                        GordonSmith Level 4

                        Thanks for the very useful information, Francisco. I'll bring it to the attention of the product managers for Flash Player, Text Layout Framework, Flex.

                         

                        Gordon Smith

                        Adobe Flex SDK Team

                        • 9. Re: No anti-aliasing?
                          Jeffrey W. Mott Adobe Employee

                          "- Flex device fonts also use grey-scale anti-aliasing when ClearType is off.  So I was wrong in my earlier message when I complained about there being no anti-aliasing."

                           

                          This will happen if font smoothing is enabled in "Standard" mode.  If font smoothing is disabled entirely there will be no anti aliasing at all.

                           

                          - Jeff Mott

                          - Flash Platform Engineering

                          • 10. Re: No anti-aliasing?
                            CoreyRLucier Adobe Employee

                            Thanks Franciso, this is fun thread.  Appreciate your input.

                             

                            Some random comments...

                             

                            • You bring up an interesting point about IE7 and IE8, having chosen to always render fonts using sub-pixel AA, independent of the OS setting.  One point to make is that sub-pixel AA is only appropriate for some (granted most) monitors, specifically LCD. There are still monitors where sub-pixel AA is not a good fit.  In that case IE7 and IE8 provide the means of disabling.  Mac OSX also provides a means of setting the font size threshold where smoothing is enabled.   These are all settings that the end user (not the content author) controls.  In the case of Flash if we were to choose to sub-pixel AA everything by default, and not honor the system-wide setting, the player probably should also provide a means for the end user to opt-out.
                            • As you know Flex itself leans on the Flash Player for its underlying runtime.  As the Flash Player evolves in the text space so does Flex.  Just mentioning, since as Gordon points out any low level capability centric requests need to be passed along to the player team as well.
                            • Flex doesn't necessarily rely on embedded fonts per say.  It's up to the application developer what fonts and theme they wish to use.  The end user can choose to either embrace device fonts or leverage embedded font outlines...as appropriate.
                            • I'm running OSX current, and both Flex 3 and Flex 4 look quite nice for me.  The device fonts used in the samples I'm looking at are all nicely sub-pixel anti-aliased.  In addition the text in both Safari and Firefox are also sub-pixel AA by default for me.   So I'd like to understand what you are seeing when you say: 
                            'but the default device font used by Flex (Flex 3) look very ugly.  No question of bias in this case.  A huge problem on the Mac is the spacing of the letters; it's way off; some letters are on top of each other, and there are huge gaps in other places.'

                             

                            Can you send along a screen shot from your system and a test file demonstrating what you are seeing?

                            • 11. Re: No anti-aliasing?
                              Francisco42 Level 1

                              Yes, thank you.  I did not realize that you could turn off smoothing entirely.

                               

                              Francisco

                              • 12. Re: No anti-aliasing?
                                Francisco42 Level 1

                                Hi Corey,

                                 

                                Thanks for your message.  I've looked more carefully at the device font I'm using on the Mac (with an LCD display).  You are right, it's anti-aliased.  (I can't see any subpixel colorations with my magnifying glass as I can see them on Windows, but maybe they are just less obvious.) 

                                 

                                So the reason the device font looks ugly on the Mac must just be the letter spacing.  Since you said it looks good to you, I checked the code and did some experimentation.  It turns out that I'm saying fontFamily="_sans" and, surprisingly, in Flex 3, this it not the same as not assigning a value to fontFamily.  (Out of curiosity I checked Flex 4, and it is the same there.)  Saying fontFamily="_sans" causes the letter spacing to be way off.  If I don't say anything the spacing it still a bit off, but not too much, and the font does not look bad, although it still does not look as good as an embedded font.

                                 

                                I tried taking screen shots, but they come out a little blurry and it's hard to judge fonts on them.  But I'm attaching a simple mxml file that compares the embedded font, the device font with no assignment to fontFamily, and the device font with fontFamily="_sans".

                                 

                                If you want to see the huge difference that fonts make on the application, the best thing is to look at the application itself, so I should say what it is.  It's Noflail Search, a search engine that you can find at noflail.com.  It starts out using an embedded font, but if it encounters an East-Asian character, or you specifiy an East-Asian language restriction, or you turn on an IME for an East-Asian language, it switches to fontFamily="_sans" (and lets you know that it does).  To go back to the embedded font you can remove what caused the switch and reload the page.  So it's easy to compare the effect of the two fonts.

                                 

                                The switching to the device font was my clumsy attempt at coping with the East-Asian character problem.  Unfortunately the switching happens fairly often, because East-Asian characters pop-up in results when you least expect it, even if the query has nothing to do with East-Asia.  So I will remove the "feature" soon, and just use device fonts and hope that most Windows users have ClearType enabled.  But I'll leave it on all day Monday in case you want to check out the effect of the fonts on the application.

                                 

                                When I said that Adobe should not rely on embedded fonts I was referring to the fact that the nice anti-aliasing and text rendering that you have in Flex 3, and the presumably nicer one in Flex 4, is only available for embedded fonts.

                                 

                                Btw I've been comparing the subpixel anti-aliasing that I get with ClearType and a device font on Windows to the embedded font, and the embedded font looks definitely better.  The device font with ClearType looks purplish, and the anti-aliasing does not seem as good.  So let me emphasize that I'm not arguing that Adobe should use subpixel anti-aliasing.  I'm arguing that the grey-scale anti-aliasing and text rendering that you use for embedded fonts should be used for device fonts as well.  Is there any technical reason that makes this difficult?  Impossible?

                                 

                                Thanks for listening

                                 

                                Francisco

                                • 13. Re: No anti-aliasing?
                                  Jeffrey W. Mott Adobe Employee

                                  Device fonts not only reside on the local system, they are rendered by the OS and not by the player.  The player does not currently have the capability to render them internally.  Obviously nothing is impossible, and this capability may be added to a future player.

                                   

                                  Jeff Mott

                                  Flash Platform Engineering