Re: Poor font rendering..
On Mar 11, 2014, at 1:57 AM, Robert Fisher wrote: > Suppose I want to see what GDI, SWT-like text looks like in JavaFX. I should > set -Djavafx.text=t2k. But looking at the picture > (http://i.imgur.com/CGyckge.png) it still seems there is some additional > blurring in JavaFX. Some additional sub-pixel positioning logic, perhaps? Exactly, See GlyphCache#addDataToQuad(), in the isLCDCache case, dx1 = Math.round(dx1 * 3.0f) / 3.0f; Later in /graphics/src/main/jsl-prism/PaintTextureSecondPassLCD.jsl that dx1 (which was rounded to .0, 0.33, 0.66) is used to offset the pixel color RGB values to produce the sub pixel image. Rounding that dx1 to pixel (like GlyphCache does for grayscale text), then I would expected -Djavafx.text=t2k and SWT to look very similar. Cheers Felipe
Re: Poor font rendering..
Hi Felipe, thanks for the detailed reply, that Firefox blog post is interesting. I guess sub-pixel positioning is the crucial point here. If a black, 1-pixel wide vertical stroke is positioned between two pixels, you'll get a dimmer, 2-pixel wide stroke instead. Suppose I want to see what GDI, SWT-like text looks like in JavaFX. I should set -Djavafx.text=t2k. But looking at the picture (http://i.imgur.com/CGyckge.png) it still seems there is some additional blurring in JavaFX. Some additional sub-pixel positioning logic, perhaps? But I concede that there has to be a compromise between positioning and 'vibrancy' for small text. Cheers, Rob -Ursprüngliche Nachricht- Von: openjfx-dev [mailto:openjfx-dev-boun...@openjdk.java.net] Im Auftrag von Felipe Heidrich Gesendet: Montag, 10. März 2014 18:46 An: OpenJFX Mailing List Betreff: Re: Poor font rendering.. Thank you Rob, DirectWrite is the engine JavaFX uses to produces glyph masks (white on black), therefore JavaFX text should resemble that of DirectWrite (it is not exactly the same, as JavaFX does its own color blending and gamma correction). We decided to use DirectWrite for JavaFX because it is the most modern native technology on Windows that we can use. In particular, we were interested on sub pixel positioned text. GDI, for example, all glyph positioning are expressed as integer, and glyphs are (usually) aggressively hinted. Interesting FIreFox had all the same trouble when they switched from GDI to DirectWrite. Please read https://blog.mozilla.org/nattokirai/2011/08/11/directwrite-text-rendering-in-firefox-6/ JavaFX always uses DirectWrite natural mode rendering. We too can provided switches for GDI Classic rendering mode, cleartype level, enhanced contrast, gamma, etc. It is all defined here http://msdn.microsoft.com/en-us/library/windows/desktop/dd371285(v=vs.85).aspx Maybe that would help ? Notes: SWT uses GDI to render text (I know, I implemented it). JavaFX with -Djavafx.text=t2k uses GDI to render LCD text, SWT and JavaFX with -Djavafx.text=t2k are not same, but similar, likely again because JavaFX does its own color blending and gamma correction. Felipe
Re: Poor font rendering..
Thank you Rob, DirectWrite is the engine JavaFX uses to produces glyph masks (white on black), therefore JavaFX text should resemble that of DirectWrite (it is not exactly the same, as JavaFX does its own color blending and gamma correction). We decided to use DirectWrite for JavaFX because it is the most modern native technology on Windows that we can use. In particular, we were interested on sub pixel positioned text. GDI, for example, all glyph positioning are expressed as integer, and glyphs are (usually) aggressively hinted. Interesting FIreFox had all the same trouble when they switched from GDI to DirectWrite. Please read https://blog.mozilla.org/nattokirai/2011/08/11/directwrite-text-rendering-in-firefox-6/ JavaFX always uses DirectWrite natural mode rendering. We too can provided switches for GDI Classic rendering mode, cleartype level, enhanced contrast, gamma, etc. It is all defined here http://msdn.microsoft.com/en-us/library/windows/desktop/dd371285(v=vs.85).aspx Maybe that would help ? Notes: SWT uses GDI to render text (I know, I implemented it). JavaFX with -Djavafx.text=t2k uses GDI to render LCD text, SWT and JavaFX with -Djavafx.text=t2k are not same, but similar, likely again because JavaFX does its own color blending and gamma correction. Felipe On Mar 10, 2014, at 10:06 AM, Robert Fisher wrote: > Hi Felipe, > > I've added the results from the DirectWrite 'Hello World' sample to the image: > > http://i.imgur.com/CGyckge.png > > Is this supposed to be the benchmark for how black text should look? In my > opinion the text in Chrome / Firefox / Eclipse is a lot clearer and sharper > when viewed at 100%. > > Cheers, > Rob > >
AW: Poor font rendering..
Hi Felipe, I've added the results from the DirectWrite 'Hello World' sample to the image: http://i.imgur.com/CGyckge.png Is this supposed to be the benchmark for how black text should look? In my opinion the text in Chrome / Firefox / Eclipse is a lot clearer and sharper when viewed at 100%. Cheers, Rob
Re: Poor font rendering..
Thank you Rob, It would be interesting to test against a DirectWrite app. I’m not sure if you have VS, but if you do it should be simple to modify the Simple Text tab in the DirectWrite Hello World Sample to use the same font and text: http://msdn.microsoft.com/en-us/library/windows/desktop/dd368048(v=vs.85).aspx I have attached your screenshot to https://javafx-jira.kenai.com/browse/RT-36146 for now so it doesn’t get lost. Regards Felipe On Mar 7, 2014, at 1:41 AM, Robert Fisher wrote: > Hi Felipe, Hi Phil, > > Thanks for the tips. Phil, your program yielded the following output: > > Text-specific antialiasing enable key : LCD HRGB antialiasing text mode > Text-specific LCD contrast key : 120 > > I tried all of the 5 settings that Felix mentioned. Here are my results for > the default font (Segoe UI 9pt, black): > > http://i.imgur.com/45FewcL.png > > The difference in quality between the JavaFX images and the rest is too great > to be chalked up to personal preferences. Whether it's the fault of JavaFX, > or the native rendering mechanism being used, or my own configuration is > another question. > > Cheers, > Rob > >
Re: Poor font rendering..
Hi Felipe, Hi Phil, Thanks for the tips. Phil, your program yielded the following output: Text-specific antialiasing enable key : LCD HRGB antialiasing text mode Text-specific LCD contrast key : 120 I tried all of the 5 settings that Felix mentioned. Here are my results for the default font (Segoe UI 9pt, black): http://i.imgur.com/45FewcL.png The difference in quality between the JavaFX images and the rest is too great to be chalked up to personal preferences. Whether it's the fault of JavaFX, or the native rendering mechanism being used, or my own configuration is another question. Cheers, Rob
Re: Poor font rendering..
fairly easily,and you can use this JDK app to see what the SystemParameterInfo setting is. import java.awt.*; import java.util.*; public class GetGamma { public static void main(String args[]) { Toolkit tk = Toolkit.getDefaultToolkit(); Map map = (Map)tk.getDesktopProperty("awt.font.desktophints"); if (map != null) { for (Object k : map.keySet()) { System.out.println(k + " : " + map.get(k)); } } } } C:\>c:\jdk1.8\bin\java GetGamma Text-specific antialiasing enable key : LCD HRGB antialiasing text mode Text-specific LCD contrast key : 120 (*) I'm sure Outlook used to be a GDI app, but who knows what version you are using and what rendering technology it uses. I've tried to make the point many times before that someone can always point to a difference from 'native' rendering simply because the platforms like OS X and Windows have multiple rasterisers and multiple font technologies all of which are different from each other. So whilst any notably 'poor' rendering needs to be looked into it maybe sometimes an artifact of one rendering path compared to another .. -phil. On 3/6/2014 1:21 AM, Robert Fisher wrote: Hi all, I think there is still room for improvement in terms of the 'contrast' or 'vibrancy' of fonts in JavaFX. Take a look at this example: http://i.imgur.com/6qSamTO.png I'm running Windows 7. What you are seeing is a screenshot of the default font, zoomed in 600%. The top text is JavaFX 8 (latest build as of 3 days ago). The bottom text is Outlook but could just as easily have been Firefox, Chrome, Word, or Eclipse SWT - they're all indistinguishable to me. The JavaFX text doesn't look as vibrant. In particular the smoothing algorithm seems to be making poor colour choices for the vertical strokes. At 100% the difference is subtle but important. I have the text fill set to Color.BLACK and the font smoothing type set to LCD. Is there something else I can configure to get more vibrant-looking fonts? Cheers! Rob -Ursprüngliche Nachricht- Von: openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net> <mailto:openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net>> <mailto:openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net> <mailto:openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net>>> [mailto:openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net> <mailto:openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net>> <mailto:openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net> <mailto:openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net>>>] Im Auftrag von Stephen F Northover Gesendet: Mittwoch, 5. März 2014 18:30 An: Pedro Duque Vieira; OpenJFX Mailing List Betreff: Re: Poor font rendering.. Hi Pedro,
Re: Poor font rendering..
ion you are using and what rendering technology it uses. I've tried to make the point many times before that someone can always point to a difference from 'native' rendering simply because the platforms like OS X and Windows have multiple rasterisers and multiple font technologies all of which are different from each other. So whilst any notably 'poor' rendering needs to be looked into it maybe sometimes an artifact of one rendering path compared to another .. -phil. On 3/6/2014 1:21 AM, Robert Fisher wrote: Hi all, I think there is still room for improvement in terms of the 'contrast' or 'vibrancy' of fonts in JavaFX. Take a look at this example: http://i.imgur.com/6qSamTO.png I'm running Windows 7. What you are seeing is a screenshot of the default font, zoomed in 600%. The top text is JavaFX 8 (latest build as of 3 days ago). The bottom text is Outlook but could just as easily have been Firefox, Chrome, Word, or Eclipse SWT - they're all indistinguishable to me. The JavaFX text doesn't look as vibrant. In particular the smoothing algorithm seems to be making poor colour choices for the vertical strokes. At 100% the difference is subtle but important. I have the text fill set to Color.BLACK and the font smoothing type set to LCD. Is there something else I can configure to get more vibrant-looking fonts? Cheers! Rob -Ursprüngliche Nachricht- Von: openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net> <mailto:openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net>> <mailto:openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net> <mailto:openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net>>> [mailto:openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net> <mailto:openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net>> <mailto:openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net> <mailto:openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net>>>] Im Auftrag von Stephen F Northover Gesendet: Mittwoch, 5. März 2014 18:30 An: Pedro Duque Vieira; OpenJFX Mailing List Betreff: Re: Poor font rendering.. Hi Pedro, Font rendering in FX8 is using the native rasterizer so the glyphs should be identical to what the operating system is rendering. That said, we may have a bug. Please enter a JIRA with sample code and a screen shot of the bad rendering. That will give us something concrete to work with. Thanks, Steve On 2014-03-05 12:10 PM, Pedro Duque Vieira wrote: Hi, As evidenced by the screenshots in http://pixelduke.wordpress.com/ blog posts about JMetro, javafx as noticeably poor font rendering visuals. The most recent screenshots were taken on a windows 8.1 machine and the older ones on windows 7, using Segoe UI (windows 7 & 8 system font).
Re: Poor font rendering..
I have created an issue on jira: https://javafx-jira.kenai.com/browse/RT-36146 Felipe, I couldn't assign the issue to you but I think someone already did. Guys, could you please add in your comments/suggestions to the issue? I guess that would be nice for the person who is going to fix it or the developers that might stumble into this. Thanks! -- Pedro Duque Vieira
Re: Poor font rendering..
t;> >> >> On 3/6/2014 1:21 AM, Robert Fisher wrote: >> >> Hi all, >> >> I think there is still room for improvement in terms >> of the >> 'contrast' or 'vibrancy' of fonts in JavaFX. Take a >> look at >> this example: >> >> http://i.imgur.com/6qSamTO.png >> >> I'm running Windows 7. What you are seeing is a >> screenshot of >> the default font, zoomed in 600%. The top text is JavaFX 8 >> (latest build as of 3 days ago). The bottom text is >> Outlook >> but could just as easily have been Firefox, Chrome, >> Word, or >> Eclipse SWT - they're all indistinguishable to me. >> >> The JavaFX text doesn't look as vibrant. In particular the >> smoothing algorithm seems to be making poor colour >> choices for >> the vertical strokes. At 100% the difference is subtle but >> important. >> >> I have the text fill set to Color.BLACK and the font >> smoothing >> type set to LCD. Is there something else I can >> configure to >> get more vibrant-looking fonts? >> >> Cheers! >> Rob >> >> >> -Ursprüngliche Nachricht- >> Von: openjfx-dev-boun...@openjdk.java.net >> <mailto:openjfx-dev-boun...@openjdk.java.net> >> <mailto:openjfx-dev-boun...@openjdk.java.net >> <mailto:openjfx-dev-boun...@openjdk.java.net>> >> [mailto:openjfx-dev-boun...@openjdk.java.net >> >> <mailto:openjfx-dev-boun...@openjdk.java.net> >> >> <mailto:openjfx-dev-boun...@openjdk.java.net >> <mailto:openjfx-dev-boun...@openjdk.java.net>>] Im Auftrag von >> Stephen F Northover >> Gesendet: Mittwoch, 5. März 2014 18:30 >> An: Pedro Duque Vieira; OpenJFX Mailing List >> Betreff: Re: Poor font rendering.. >> >> Hi Pedro, >> >> Font rendering in FX8 is using the native rasterizer >> so the >> glyphs should be identical to what the operating system is >> rendering. That said, we may have a bug. Please enter >> a JIRA >> with sample code and a screen shot of the bad >> rendering. That >> will give us something concrete to work with. >> >> Thanks, >> Steve >> >> On 2014-03-05 12:10 PM, Pedro Duque Vieira wrote: >> >> Hi, >> >> As evidenced by the screenshots in >> http://pixelduke.wordpress.com/ >> blog posts about JMetro, javafx as noticeably poor >> font >> rendering >> visuals. The most recent screenshots were taken on a >> windows 8.1 >> machine and the older ones on windows 7, using >> Segoe UI >> (windows 7 & 8 system font). >> >> 1- As this been reported? >> >> 2- Is the javafx team working on it? >> >> 3- Is there something the developer can do to increase >> font rendering >> quality? >> >> Thanks! >> Best regards, >> >> >> >> >> >> >> >> >
Re: Poor font rendering..
Hi Robert On Mar 6, 2014, at 1:21 AM, Robert Fisher wrote: > Is there something else I can configure to get more vibrant-looking fonts? Take a look at: https://javafx-jira.kenai.com/browse/RT-14187 Try a) -Dprism.subpixeltext=false b) -Dprism.subpixeltext=true c) -Dprism.subpixeltext=native d) -Dprism.subpixeltext=vertical e) -Dprism.text=t2k Let me know if anything makes it better to you. Regards Felipe
Re: Poor font rendering..
type set to LCD. Is there something else I can configure to get more vibrant-looking fonts? Cheers! Rob -Ursprüngliche Nachricht- Von: openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net> <mailto:openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net>> [mailto:openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net> <mailto:openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net>>] Im Auftrag von Stephen F Northover Gesendet: Mittwoch, 5. März 2014 18:30 An: Pedro Duque Vieira; OpenJFX Mailing List Betreff: Re: Poor font rendering.. Hi Pedro, Font rendering in FX8 is using the native rasterizer so the glyphs should be identical to what the operating system is rendering. That said, we may have a bug. Please enter a JIRA with sample code and a screen shot of the bad rendering. That will give us something concrete to work with. Thanks, Steve On 2014-03-05 12:10 PM, Pedro Duque Vieira wrote: Hi, As evidenced by the screenshots in http://pixelduke.wordpress.com/ blog posts about JMetro, javafx as noticeably poor font rendering visuals. The most recent screenshots were taken on a windows 8.1 machine and the older ones on windows 7, using Segoe UI (windows 7 & 8 system font). 1- As this been reported? 2- Is the javafx team working on it? 3- Is there something the developer can do to increase font rendering quality? Thanks! Best regards,
Re: Poor font rendering..
e vibrant-looking fonts? Cheers! Rob -Ursprüngliche Nachricht- Von: openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net> <mailto:openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net>> [mailto:openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net> <mailto:openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net>>] Im Auftrag von Stephen F Northover Gesendet: Mittwoch, 5. März 2014 18:30 An: Pedro Duque Vieira; OpenJFX Mailing List Betreff: Re: Poor font rendering.. Hi Pedro, Font rendering in FX8 is using the native rasterizer so the glyphs should be identical to what the operating system is rendering. That said, we may have a bug. Please enter a JIRA with sample code and a screen shot of the bad rendering. That will give us something concrete to work with. Thanks, Steve On 2014-03-05 12:10 PM, Pedro Duque Vieira wrote: Hi, As evidenced by the screenshots in http://pixelduke.wordpress.com/ blog posts about JMetro, javafx as noticeably poor font rendering visuals. The most recent screenshots were taken on a windows 8.1 machine and the older ones on windows 7, using Segoe UI (windows 7 & 8 system font). 1- As this been reported? 2- Is the javafx team working on it? 3- Is there something the developer can do to increase font rendering quality? Thanks! Best regards,
Re: Poor font rendering..
I think the stem of the L is colored differently because of *sub-pixel* differences in its position. I.e. it appears to be at the same integer position, but it isn't at the same real position. It looks to me like that alone could account for the differences. Scott On Thu, Mar 6, 2014 at 1:35 PM, Phil Race wrote: > Does the evidence really support that ? > You only need to look at the first letter "L". The stem is in > exactly the same place isn't it? And yet the colours are different. > > The overall length is different which I attribute to rounding differences > or metrics differences used in accumulating the position but that is a > guess. > > -phil. > > > On 3/6/2014 10:25 AM, Scott Palmer wrote: > >> If you notice, in the images provided, the length of the rendered text in >> pixels is significantly different between the two examples. That supports >> the theory that it is simply, sub-optimal positioning of the glyphs that is >> resulting in the more pronounced LCD anti-aliasing. >> >> Scott >> >> >> On Thu, Mar 6, 2014 at 1:19 PM, Phil Race > philip.r...@oracle.com>> wrote: >> >> Perhaps the gamma adjustment is different ? >> FX should pick this up from the >> SystemParameterInfo SPI_GETFONTSMOOTHINGCONTRAST setting. >> >> I don't know what Outlook (*) uses if its a WPF app then maybe its >> picking >> up an over-ridden setting for this from the registry : >> http://msdn.microsoft.com/en-us/library/aa970267%28v=vs. >> 110%29.aspx#gamma_level >> You should be able to check that out fairly easily,and you can use >> this >> JDK app to see what the SystemParameterInfo setting is. >> >> import java.awt.*; >> import java.util.*; >> public class GetGamma { >> public static void main(String args[]) { >> Toolkit tk = Toolkit.getDefaultToolkit(); >> Map map = (Map)tk.getDesktopProperty("awt.font.desktophints"); >> if (map != null) { >> for (Object k : map.keySet()) { >> System.out.println(k + " : " + map.get(k)); >> } >>} >> } >> } >> >> C:\>c:\jdk1.8\bin\java GetGamma >> Text-specific antialiasing enable key : LCD HRGB antialiasing text >> mode >> Text-specific LCD contrast key : 120 >> >> (*) I'm sure Outlook used to be a GDI app, but who knows what >> version you are using >> and what rendering technology it uses. >> I've tried to make the point many times before that someone can >> always point to >> a difference from 'native' rendering simply because the platforms >> like OS X and Windows >> have multiple rasterisers and multiple font technologies all of >> which are different >> from each other. So whilst any notably 'poor' rendering needs to >> be looked into >> it maybe sometimes an artifact of one rendering path compared to >> another .. >> >> -phil. >> >> >> On 3/6/2014 1:21 AM, Robert Fisher wrote: >> >> Hi all, >> >> I think there is still room for improvement in terms of the >> 'contrast' or 'vibrancy' of fonts in JavaFX. Take a look at >> this example: >> >> http://i.imgur.com/6qSamTO.png >> >> I'm running Windows 7. What you are seeing is a screenshot of >> the default font, zoomed in 600%. The top text is JavaFX 8 >> (latest build as of 3 days ago). The bottom text is Outlook >> but could just as easily have been Firefox, Chrome, Word, or >> Eclipse SWT - they're all indistinguishable to me. >> >> The JavaFX text doesn't look as vibrant. In particular the >> smoothing algorithm seems to be making poor colour choices for >> the vertical strokes. At 100% the difference is subtle but >> important. >> >> I have the text fill set to Color.BLACK and the font smoothing >> type set to LCD. Is there something else I can configure to >> get more vibrant-looking fonts? >> >> Cheers! >> Rob >> >> >> -Ursprüngliche Nachricht- >> Von: openjfx-dev-boun...@openjdk.java.net >> <mailto:openjfx-dev-boun...@openjdk.java.net> >> [mailto:openjfx-dev-boun...@openjdk.java.net >> >
Re: Poor font rendering..
Does the evidence really support that ? You only need to look at the first letter "L". The stem is in exactly the same place isn't it? And yet the colours are different. The overall length is different which I attribute to rounding differences or metrics differences used in accumulating the position but that is a guess. -phil. On 3/6/2014 10:25 AM, Scott Palmer wrote: If you notice, in the images provided, the length of the rendered text in pixels is significantly different between the two examples. That supports the theory that it is simply, sub-optimal positioning of the glyphs that is resulting in the more pronounced LCD anti-aliasing. Scott On Thu, Mar 6, 2014 at 1:19 PM, Phil Race <mailto:philip.r...@oracle.com>> wrote: Perhaps the gamma adjustment is different ? FX should pick this up from the SystemParameterInfo SPI_GETFONTSMOOTHINGCONTRAST setting. I don't know what Outlook (*) uses if its a WPF app then maybe its picking up an over-ridden setting for this from the registry : http://msdn.microsoft.com/en-us/library/aa970267%28v=vs.110%29.aspx#gamma_level You should be able to check that out fairly easily,and you can use this JDK app to see what the SystemParameterInfo setting is. import java.awt.*; import java.util.*; public class GetGamma { public static void main(String args[]) { Toolkit tk = Toolkit.getDefaultToolkit(); Map map = (Map)tk.getDesktopProperty("awt.font.desktophints"); if (map != null) { for (Object k : map.keySet()) { System.out.println(k + " : " + map.get(k)); } } } } C:\>c:\jdk1.8\bin\java GetGamma Text-specific antialiasing enable key : LCD HRGB antialiasing text mode Text-specific LCD contrast key : 120 (*) I'm sure Outlook used to be a GDI app, but who knows what version you are using and what rendering technology it uses. I've tried to make the point many times before that someone can always point to a difference from 'native' rendering simply because the platforms like OS X and Windows have multiple rasterisers and multiple font technologies all of which are different from each other. So whilst any notably 'poor' rendering needs to be looked into it maybe sometimes an artifact of one rendering path compared to another .. -phil. On 3/6/2014 1:21 AM, Robert Fisher wrote: Hi all, I think there is still room for improvement in terms of the 'contrast' or 'vibrancy' of fonts in JavaFX. Take a look at this example: http://i.imgur.com/6qSamTO.png I'm running Windows 7. What you are seeing is a screenshot of the default font, zoomed in 600%. The top text is JavaFX 8 (latest build as of 3 days ago). The bottom text is Outlook but could just as easily have been Firefox, Chrome, Word, or Eclipse SWT - they're all indistinguishable to me. The JavaFX text doesn't look as vibrant. In particular the smoothing algorithm seems to be making poor colour choices for the vertical strokes. At 100% the difference is subtle but important. I have the text fill set to Color.BLACK and the font smoothing type set to LCD. Is there something else I can configure to get more vibrant-looking fonts? Cheers! Rob -Ursprüngliche Nachricht- Von: openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net> [mailto:openjfx-dev-boun...@openjdk.java.net <mailto:openjfx-dev-boun...@openjdk.java.net>] Im Auftrag von Stephen F Northover Gesendet: Mittwoch, 5. März 2014 18:30 An: Pedro Duque Vieira; OpenJFX Mailing List Betreff: Re: Poor font rendering.. Hi Pedro, Font rendering in FX8 is using the native rasterizer so the glyphs should be identical to what the operating system is rendering. That said, we may have a bug. Please enter a JIRA with sample code and a screen shot of the bad rendering. That will give us something concrete to work with. Thanks, Steve On 2014-03-05 12:10 PM, Pedro Duque Vieira wrote: Hi, As evidenced by the screenshots in http://pixelduke.wordpress.com/ blog posts about JMetro, javafx as noticeably poor font rendering visuals. The most recent screenshots were taken on a windows 8.1 machine and the older ones on windows 7, using Segoe UI (windows 7 & 8 system font). 1- As this been reported? 2- Is the javafx team working on it? 3- Is there something the developer can do to increase font rendering quality? Thanks! Best regards,
Re: Poor font rendering..
Perhaps the gamma adjustment is different ? FX should pick this up from the SystemParameterInfo SPI_GETFONTSMOOTHINGCONTRAST setting. I don't know what Outlook (*) uses if its a WPF app then maybe its picking up an over-ridden setting for this from the registry : http://msdn.microsoft.com/en-us/library/aa970267%28v=vs.110%29.aspx#gamma_level You should be able to check that out fairly easily,and you can use this JDK app to see what the SystemParameterInfo setting is. import java.awt.*; import java.util.*; public class GetGamma { public static void main(String args[]) { Toolkit tk = Toolkit.getDefaultToolkit(); Map map = (Map)tk.getDesktopProperty("awt.font.desktophints"); if (map != null) { for (Object k : map.keySet()) { System.out.println(k + " : " + map.get(k)); } } } } C:\>c:\jdk1.8\bin\java GetGamma Text-specific antialiasing enable key : LCD HRGB antialiasing text mode Text-specific LCD contrast key : 120 (*) I'm sure Outlook used to be a GDI app, but who knows what version you are using and what rendering technology it uses. I've tried to make the point many times before that someone can always point to a difference from 'native' rendering simply because the platforms like OS X and Windows have multiple rasterisers and multiple font technologies all of which are different from each other. So whilst any notably 'poor' rendering needs to be looked into it maybe sometimes an artifact of one rendering path compared to another .. -phil. On 3/6/2014 1:21 AM, Robert Fisher wrote: Hi all, I think there is still room for improvement in terms of the 'contrast' or 'vibrancy' of fonts in JavaFX. Take a look at this example: http://i.imgur.com/6qSamTO.png I'm running Windows 7. What you are seeing is a screenshot of the default font, zoomed in 600%. The top text is JavaFX 8 (latest build as of 3 days ago). The bottom text is Outlook but could just as easily have been Firefox, Chrome, Word, or Eclipse SWT - they're all indistinguishable to me. The JavaFX text doesn't look as vibrant. In particular the smoothing algorithm seems to be making poor colour choices for the vertical strokes. At 100% the difference is subtle but important. I have the text fill set to Color.BLACK and the font smoothing type set to LCD. Is there something else I can configure to get more vibrant-looking fonts? Cheers! Rob -Ursprüngliche Nachricht- Von: openjfx-dev-boun...@openjdk.java.net [mailto:openjfx-dev-boun...@openjdk.java.net] Im Auftrag von Stephen F Northover Gesendet: Mittwoch, 5. März 2014 18:30 An: Pedro Duque Vieira; OpenJFX Mailing List Betreff: Re: Poor font rendering.. Hi Pedro, Font rendering in FX8 is using the native rasterizer so the glyphs should be identical to what the operating system is rendering. That said, we may have a bug. Please enter a JIRA with sample code and a screen shot of the bad rendering. That will give us something concrete to work with. Thanks, Steve On 2014-03-05 12:10 PM, Pedro Duque Vieira wrote: Hi, As evidenced by the screenshots in http://pixelduke.wordpress.com/ blog posts about JMetro, javafx as noticeably poor font rendering visuals. The most recent screenshots were taken on a windows 8.1 machine and the older ones on windows 7, using Segoe UI (windows 7 & 8 system font). 1- As this been reported? 2- Is the javafx team working on it? 3- Is there something the developer can do to increase font rendering quality? Thanks! Best regards,
Re: Poor font rendering..
If you notice, in the images provided, the length of the rendered text in pixels is significantly different between the two examples. That supports the theory that it is simply, sub-optimal positioning of the glyphs that is resulting in the more pronounced LCD anti-aliasing. Scott On Thu, Mar 6, 2014 at 1:19 PM, Phil Race wrote: > Perhaps the gamma adjustment is different ? > FX should pick this up from the > SystemParameterInfo SPI_GETFONTSMOOTHINGCONTRAST setting. > > I don't know what Outlook (*) uses if its a WPF app then maybe its picking > up an over-ridden setting for this from the registry : > http://msdn.microsoft.com/en-us/library/aa970267%28v=vs. > 110%29.aspx#gamma_level > You should be able to check that out fairly easily,and you can use this > JDK app to see what the SystemParameterInfo setting is. > > import java.awt.*; > import java.util.*; > public class GetGamma { > public static void main(String args[]) { > Toolkit tk = Toolkit.getDefaultToolkit(); > Map map = (Map)tk.getDesktopProperty("awt.font.desktophints"); > if (map != null) { > for (Object k : map.keySet()) { > System.out.println(k + " : " + map.get(k)); > } >} > } > } > > C:\>c:\jdk1.8\bin\java GetGamma > Text-specific antialiasing enable key : LCD HRGB antialiasing text mode > Text-specific LCD contrast key : 120 > > (*) I'm sure Outlook used to be a GDI app, but who knows what version you > are using > and what rendering technology it uses. > I've tried to make the point many times before that someone can always > point to > a difference from 'native' rendering simply because the platforms like OS > X and Windows > have multiple rasterisers and multiple font technologies all of which are > different > from each other. So whilst any notably 'poor' rendering needs to be > looked into > it maybe sometimes an artifact of one rendering path compared to another .. > > -phil. > > > On 3/6/2014 1:21 AM, Robert Fisher wrote: > >> Hi all, >> >> I think there is still room for improvement in terms of the 'contrast' or >> 'vibrancy' of fonts in JavaFX. Take a look at this example: >> >> http://i.imgur.com/6qSamTO.png >> >> I'm running Windows 7. What you are seeing is a screenshot of the default >> font, zoomed in 600%. The top text is JavaFX 8 (latest build as of 3 days >> ago). The bottom text is Outlook but could just as easily have been >> Firefox, Chrome, Word, or Eclipse SWT - they're all indistinguishable to me. >> >> The JavaFX text doesn't look as vibrant. In particular the smoothing >> algorithm seems to be making poor colour choices for the vertical strokes. >> At 100% the difference is subtle but important. >> >> I have the text fill set to Color.BLACK and the font smoothing type set >> to LCD. Is there something else I can configure to get more vibrant-looking >> fonts? >> >> Cheers! >> Rob >> >> >> -Ursprüngliche Nachricht- >> Von: openjfx-dev-boun...@openjdk.java.net [mailto:openjfx-dev-bounces@ >> openjdk.java.net] Im Auftrag von Stephen F Northover >> Gesendet: Mittwoch, 5. März 2014 18:30 >> An: Pedro Duque Vieira; OpenJFX Mailing List >> Betreff: Re: Poor font rendering.. >> >> Hi Pedro, >> >> Font rendering in FX8 is using the native rasterizer so the glyphs should >> be identical to what the operating system is rendering. That said, we may >> have a bug. Please enter a JIRA with sample code and a screen shot of the >> bad rendering. That will give us something concrete to work with. >> >> Thanks, >> Steve >> >> On 2014-03-05 12:10 PM, Pedro Duque Vieira wrote: >> >>> Hi, >>> >>> As evidenced by the screenshots in http://pixelduke.wordpress.com/ >>> blog posts about JMetro, javafx as noticeably poor font rendering >>> visuals. The most recent screenshots were taken on a windows 8.1 >>> machine and the older ones on windows 7, using Segoe UI (windows 7 & 8 >>> system font). >>> >>> 1- As this been reported? >>> >>> 2- Is the javafx team working on it? >>> >>> 3- Is there something the developer can do to increase font rendering >>> quality? >>> >>> Thanks! >>> Best regards, >>> >>> >>> >> >
Re: Poor font rendering..
Thank you Pedro, Please report all the information to the bug system (file a new report if needed). Assign it to me. Regards Felipe On Mar 5, 2014, at 5:39 PM, Pedro Duque Vieira wrote: > 1. It doesn't appear to be related with that issue but than again, it might.. > > 3. Thank you very much! I'll try out those settings to see how it looks. I'm > not very familinar with the internals of how windows renders fonts but IMHO I > would think that such poor results should be possible to avoid even with > default settings. > c) When you say 80, you mean 80px right? Even at 42px the results are quite > poor. > d) That's not the case, but I'll double check, just in case. > e) That's not the case. > > To answer your question: no, it looks bad both in windows 7 and windows 8 > (8.1). > > Before submitting the bug I think it's better for me to double check if it's > not my computer's fault that the results are so poor because as I said I > don't know much about the font rendering internals of windows, but as my > computer has a 1900x1200 display (slightly superior than full hd) I would > expect much better results using the system font (Segoe UI). Like I said even > at 42px, using the system font, the results are very poor (you can attest to > that by looking at the screenshots in my blog - pixelduke). > > Thanks again, regards, > > 1. > Maybe https://javafx-jira.kenai.com/browse/RT-35402 > 2. > Sure. The above bug is in my TODO list as a matter of fact, > 3. Things to try: > a) Text#setFontSmoothingType(LCD) ? > b) -Dprism.text=t2k (in the command line) > c) if the font size is bigger than 80 JavaFX renders text using paths, try > font size < 80 (so that glyph images are used) > d) make sure the text node does not lay in a transparent cached parent, or > any other type node that is internally rendered using intermediate > transparent texture. See https://javafx-jira.kenai.com/browse/RT-31100 for > details. > e) if the node is cached (with or without background set), make sure the node > is not scaled up. > Question to you, does it look good on Windows 7 and bad on Windows 8 ? > Please, use the jira to report results. > Thank you > Felipe > > -- > Pedro Duque Vieira
Re: Poor font rendering..
This looks to me like a sub-pixel horizontal alignment issue. Perhaps it is just a difference in kerning or something along those lines? Scott On Thu, Mar 6, 2014 at 4:21 AM, Robert Fisher wrote: > Hi all, > > I think there is still room for improvement in terms of the 'contrast' or > 'vibrancy' of fonts in JavaFX. Take a look at this example: > > http://i.imgur.com/6qSamTO.png > > I'm running Windows 7. What you are seeing is a screenshot of the default > font, zoomed in 600%. The top text is JavaFX 8 (latest build as of 3 days > ago). The bottom text is Outlook but could just as easily have been > Firefox, Chrome, Word, or Eclipse SWT - they're all indistinguishable to me. > > The JavaFX text doesn't look as vibrant. In particular the smoothing > algorithm seems to be making poor colour choices for the vertical strokes. > At 100% the difference is subtle but important. > > I have the text fill set to Color.BLACK and the font smoothing type set to > LCD. Is there something else I can configure to get more vibrant-looking > fonts? > > Cheers! > Rob > > > -Ursprüngliche Nachricht- > Von: openjfx-dev-boun...@openjdk.java.net [mailto: > openjfx-dev-boun...@openjdk.java.net] Im Auftrag von Stephen F Northover > Gesendet: Mittwoch, 5. März 2014 18:30 > An: Pedro Duque Vieira; OpenJFX Mailing List > Betreff: Re: Poor font rendering.. > > Hi Pedro, > > Font rendering in FX8 is using the native rasterizer so the glyphs should > be identical to what the operating system is rendering. That said, we may > have a bug. Please enter a JIRA with sample code and a screen shot of the > bad rendering. That will give us something concrete to work with. > > Thanks, > Steve > > On 2014-03-05 12:10 PM, Pedro Duque Vieira wrote: > > Hi, > > > > As evidenced by the screenshots in http://pixelduke.wordpress.com/ > > blog posts about JMetro, javafx as noticeably poor font rendering > > visuals. The most recent screenshots were taken on a windows 8.1 > > machine and the older ones on windows 7, using Segoe UI (windows 7 & 8 > system font). > > > > 1- As this been reported? > > > > 2- Is the javafx team working on it? > > > > 3- Is there something the developer can do to increase font rendering > > quality? > > > > Thanks! > > Best regards, > > > > > > >
Re: Poor font rendering..
Hi all, I think there is still room for improvement in terms of the 'contrast' or 'vibrancy' of fonts in JavaFX. Take a look at this example: http://i.imgur.com/6qSamTO.png I'm running Windows 7. What you are seeing is a screenshot of the default font, zoomed in 600%. The top text is JavaFX 8 (latest build as of 3 days ago). The bottom text is Outlook but could just as easily have been Firefox, Chrome, Word, or Eclipse SWT - they're all indistinguishable to me. The JavaFX text doesn't look as vibrant. In particular the smoothing algorithm seems to be making poor colour choices for the vertical strokes. At 100% the difference is subtle but important. I have the text fill set to Color.BLACK and the font smoothing type set to LCD. Is there something else I can configure to get more vibrant-looking fonts? Cheers! Rob -Ursprüngliche Nachricht- Von: openjfx-dev-boun...@openjdk.java.net [mailto:openjfx-dev-boun...@openjdk.java.net] Im Auftrag von Stephen F Northover Gesendet: Mittwoch, 5. März 2014 18:30 An: Pedro Duque Vieira; OpenJFX Mailing List Betreff: Re: Poor font rendering.. Hi Pedro, Font rendering in FX8 is using the native rasterizer so the glyphs should be identical to what the operating system is rendering. That said, we may have a bug. Please enter a JIRA with sample code and a screen shot of the bad rendering. That will give us something concrete to work with. Thanks, Steve On 2014-03-05 12:10 PM, Pedro Duque Vieira wrote: > Hi, > > As evidenced by the screenshots in http://pixelduke.wordpress.com/ > blog posts about JMetro, javafx as noticeably poor font rendering > visuals. The most recent screenshots were taken on a windows 8.1 > machine and the older ones on windows 7, using Segoe UI (windows 7 & 8 system > font). > > 1- As this been reported? > > 2- Is the javafx team working on it? > > 3- Is there something the developer can do to increase font rendering > quality? > > Thanks! > Best regards, > >
Re: Poor font rendering..
1. It doesn't appear to be related with that issue but than again, it might.. 3. Thank you very much! I'll try out those settings to see how it looks. I'm not very familinar with the internals of how windows renders fonts but IMHO I would think that such poor results should be possible to avoid even with default settings. c) When you say 80, you mean 80px right? Even at 42px the results are quite poor. d) That's not the case, but I'll double check, just in case. e) That's not the case. To answer your question: no, it looks bad both in windows 7 and windows 8 (8.1). Before submitting the bug I think it's better for me to double check if it's not my computer's fault that the results are so poor because as I said I don't know much about the font rendering internals of windows, but as my computer has a 1900x1200 display (slightly superior than full hd) I would expect much better results using the system font (Segoe UI). Like I said even at 42px, using the system font, the results are very poor (you can attest to that by looking at the screenshots in my blog - pixelduke). Thanks again, regards, > 1. > Maybe https://javafx-jira.kenai.com/browse/RT-35402 > 2. > Sure. The above bug is in my TODO list as a matter of fact, > 3. Things to try: > a) Text#setFontSmoothingType(LCD) ? > b) -Dprism.text=t2k (in the command line) > c) if the font size is bigger than 80 JavaFX renders text using paths, > try font size < 80 (so that glyph images are used) > d) make sure the text node does not lay in a transparent cached parent, or > any other type node that is internally rendered using intermediate > transparent texture. See https://javafx-jira.kenai.com/browse/RT-31100 for > details. > e) if the node is cached (with or without background set), make sure the > node is not scaled up. > Question to you, does it look good on Windows 7 and bad on Windows 8 ? > Please, use the jira to report results. > Thank you > Felipe -- Pedro Duque Vieira
Re: Poor font rendering..
1. Maybe https://javafx-jira.kenai.com/browse/RT-35402 2. Sure. The above bug is in my TODO list as a matter of fact, 3. Things to try: a) Text#setFontSmoothingType(LCD) ? b) -Dprism.text=t2k (in the command line) c) if the font size is bigger than 80 JavaFX renders text using paths, try font size < 80 (so that glyph images are used) d) make sure the text node does not lay in a transparent cached parent, or any other type node that is internally rendered using intermediate transparent texture. See https://javafx-jira.kenai.com/browse/RT-31100 for details. e) if the node is cached (with or without background set), make sure the node is not scaled up. Question to you, does it look good on Windows 7 and bad on Windows 8 ? Please, use the jira to report results. Thank you Felipe On Mar 5, 2014, at 9:30 AM, Stephen F Northover wrote: > Hi Pedro, > > Font rendering in FX8 is using the native rasterizer so the glyphs should be > identical to what the operating system is rendering. That said, we may have > a bug. Please enter a JIRA with sample code and a screen shot of the bad > rendering. That will give us something concrete to work with. > > Thanks, > Steve > > On 2014-03-05 12:10 PM, Pedro Duque Vieira wrote: >> Hi, >> >> As evidenced by the screenshots in http://pixelduke.wordpress.com/ blog >> posts about JMetro, javafx as noticeably poor font rendering visuals. The >> most recent screenshots were taken on a windows 8.1 machine and the older >> ones on windows 7, using Segoe UI (windows 7 & 8 system font). >> >> 1- As this been reported? >> >> 2- Is the javafx team working on it? >> >> 3- Is there something the developer can do to increase font rendering >> quality? >> >> Thanks! >> Best regards, >> >> >
Re: Poor font rendering..
Hi Pedro, Font rendering in FX8 is using the native rasterizer so the glyphs should be identical to what the operating system is rendering. That said, we may have a bug. Please enter a JIRA with sample code and a screen shot of the bad rendering. That will give us something concrete to work with. Thanks, Steve On 2014-03-05 12:10 PM, Pedro Duque Vieira wrote: Hi, As evidenced by the screenshots in http://pixelduke.wordpress.com/ blog posts about JMetro, javafx as noticeably poor font rendering visuals. The most recent screenshots were taken on a windows 8.1 machine and the older ones on windows 7, using Segoe UI (windows 7 & 8 system font). 1- As this been reported? 2- Is the javafx team working on it? 3- Is there something the developer can do to increase font rendering quality? Thanks! Best regards,
Poor font rendering..
Hi, As evidenced by the screenshots in http://pixelduke.wordpress.com/ blog posts about JMetro, javafx as noticeably poor font rendering visuals. The most recent screenshots were taken on a windows 8.1 machine and the older ones on windows 7, using Segoe UI (windows 7 & 8 system font). 1- As this been reported? 2- Is the javafx team working on it? 3- Is there something the developer can do to increase font rendering quality? Thanks! Best regards, -- Pedro Duque Vieira