On 22/08/2013 21:41, John C. Turnbull wrote:
Hi Phil,

I was actually aware that LCD text was disabled in this case but what I am 
saying is that I am seeing similar stark disparities between JavaFX fonts and 
native fonts even with LCD turned on.

I think the screenshot shows what I am talking about though perhaps the quality 
is poorer than my case because of the LCD issue.

The point is that there are still differences no matter what I do and to me at least 
these differences are very, very obvious.  I am trying to establish if what we have now 
is "as good as it gets" or if things are going to improve.

Also, it's clear from this thread that not everyone agrees on what looks good. 
It would seem that John H is concerned only with the weird '2' and feels that 
grayscale text is better than LCD text whereas I am more concerned with 
resembling native rendering.
I made new screenshots with different combinations of settings if you wish to compare those. The strange "2" is what jumped out at me as something that changed recently, but on closer inspection I see many bolded glyphs that look poor in the original screenshot:

The "1" has a rather big top edge. The "H" is thicker in one leg than the other. The "s" has a thick right curve. The "/" in top bar looks uneven. The "o", "0", "6", "9" and "5" glyphs hardly look bold at all.

I think the LCD smoothed versions looks quite good on my regular LCD monitor -- the problem is that it doesn't look good on the projector I'm using so I just turned it off for that.

Oh.. I forgot to say this, but...

Screenshots taken with LCD smoothing on are always gonna end up looking different on different monitors... if for example your monitor has slightly different spacing or a different order of the subpixels (or you rotated it), then the screenshot will look wierd. I prefer to keep LCD smoothing off as I make screenshots / videos regularly and I donot know on what system they'll be viewed on. So if one of shots has particularly bad colored fringes, it is likely you have a monitor that has a different configuration than mine.

--John


On 23/08/2013, at 5:21, Phil Race<[email protected]>  wrote:

John T,

Per a couple of earlier emails in this thread John H is deliberately disabling 
LCD text
so has grey scale, hence you can't compare directly with a native app since 
they all use LCD.

Any comparison has to be
1. Using the same string
2. Rendered in the same fashion : LCD or greyscale, hinted/unhinted.
3. Using the same font (face, size etc)
4. Using the same colours (fg&bg) and watch out for the UI controls - they used
to tweak your text colour so that (eg) black became dark grey, reducing contrast
which reduced legibility, thus also invalidating any  test. I am not sure if 
this is still the case,
but contrast is very important for text and you should make sure its as high as 
possible.

-phil.



On 8/22/2013 11:35 AM, John C. Turnbull wrote:
Am I the only one who looks at that screenshot and thinks that the fonts look 
really bad and obviously different from a native app?  Its not just the Plot 
section, its all text on the screen.

This is what I am talking about.  I wouldn't even describe the differences as 
"subtle" as to me there is a dramatic difference in quality.

Can this be fixed or are JavaFX apps always going to stand out for all the 
wrong reasons like this?

On 23/08/2013, at 0:05, John Hendrikx<[email protected]>  wrote:

Those are all normal controls, the plot section is just a Label for example.

On 22/08/2013 13:39, John C. Turnbull wrote:
John H, it may be just me but pretty much *all* the fonts in your screenshot
look quite poor and noticeably different from native font rendering.  If you
look for instance at the text in the "Plot" section, to me that text looks
awful.

Is that inside a WebView or some other control?

-jct

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of John Hendrikx
Sent: Thursday, 22 August 2013 17:29
To: [email protected]
Subject: Re: Poor quality font rendering


I took another good look, and I see what is bothering me is mostly how the
glyph "2" is rendered on my system (it has a thick appearing curve attached
to the base).  I've included a screenshot of my application that uses
several different sizes fonts, but it seems only the ones in the top bar are
rendered somewhat wierd.

http://ukyo.xs4all.nl/Digit2RenderedPoorlyInTopBar.png

I'm on Windows 7, JavaFX 8b99, 32-bit, using D3D pipeline (I get this stuff
in log in an infinite loop, so must be D3D I think):

D3D Vram Pool: 129,613,674 used (48.3%), 129,613,674 managed (48.3%),
268,435,456 total                   --
com.sun.prism.impl.ManagedResource.printSummary(ManagedResource.java:134)
75 total resources being
managed

-- com.sun.prism.impl.ManagedResource.printSummary(ManagedResource.java:153)
4 permanent resources
(5.3%)

-- com.sun.prism.impl.ManagedResource.printSummary(ManagedResource.java:154)
2 resources locked
(2.7%)

-- com.sun.prism.impl.ManagedResource.printSummary(ManagedResource.java:156)
43 resources contain interesting data
(57.3%)                                                             --
com.sun.prism.impl.ManagedResource.printSummary(ManagedResource.java:158)
0 resources disappeared
(0.0%)

-- com.sun.prism.impl.ManagedResource.printSummary(ManagedResource.java:160)

I also have this in main, before Application.launch is called:

      System.setProperty("prism.lcdtext", "false");

In .root in CSS I have:

    -fx-font-family: "Arial";
    -fx-font-size: 16px;
    -fx-font-weight: normal;

So all the fonts you see should be Arial (but the sizes and weights are
tweaked depending on location).

--John

On 21/08/2013 20:51, Felipe Heidrich wrote:
John H:

In JFX we decided to go with sub-pixel positioned text (as opposite to
pixel grid aligned).
That said, on Windows for grayscale text, we are not doing that (yet). Are
you running Windows, with D3D pipeline ?
I would need to see a picture to be sure I understand the problem you
describe.
Felipe


On Aug 21, 2013, at 10:19 AM, John Hendrikx wrote:

I think I also noticed a change in font rendering around b99 somewhere...
the fonts seem to be thinner than before, or perhaps more poorly aligned
with pixel boundaries.  I'd prefer glyphs laid out in the same way each
time, ie. letters are always on a new pixel boundary, so the same letter
will look the same regardless of what preceeds it.  I have LCD rendering
turned off as I donot appreciate colored fringes on my glyphs.
On 21/08/2013 14:53, John C. Turnbull wrote:
I have only really tested JavaFX extensively on Windows so my
comments here apply mainly to that platform.



It seems that even with a font smoothing type of LCD, font rendering
in JavaFX is not at the same level of quality of native
applications.  My current experiences are with JavaFX 8 b103 and I
find that all rendered text in JavaFX appears of a significantly
poorer quality than that which I would see in Word for example or
even in IE10 (which I believe uses the same text rendering engine).
Also, these observations are based on text in "standard"
controls and the quality of font rendering is dramatically worse
within the Canvas control.



I am not an expert in font technology but I have read many times
that the levels of antialiasing for text that can be achieved in a
GPU-based renderer are always going to be less than that achieved in a
CPU-based renderer.
This is often explained on the basis of graphics card drivers being
optimised for performance and the rapid rendering of triangles
commonly required in games rather than for rendering quality when it
comes to text.
Is this the reason why JavaFX font rendering appears less legible
and of a lower quality than native apps?

If so, how does IE10 for example achieve a higher quality of
rendering when it seems to also use DirectWrite?

Is the quality of JavaFX font rendering ever going to improve?



Thanks,



-jct

Reply via email to