Hi John,

My apology, I must have grouped this thread with the long "MSAA" thread in my earlier reply. For JavaFX 8 we have no plan to read in control setting from the user via Control Panel or some sort. I'm not sure how feasible it is to access this information from different GPU vendors and across platforms (desktop and embedded). We are still in the early phase of the 3D anti-aliasing effort for JavaFX. For the coming release, we are relying on MSAA as a technique to do scene anti-aliasing for 3D scene. We aren't at the point where we are ready to compare our techniques and rendering quality with other libraries. This is something we will do further down the road ...

- Chien

On 7/26/2013 2:54 AM, John C. Turnbull wrote:
Hi Richard,

I haven't seen any comments by Chien on this thread so I must have missed
them.

I am still not sure:

1. If the driver's Control Panel can be used to override the AA settings
specified by the developer in a JavaFX application.
2. How iPhone and WebGL games get such awesome quality graphics without
jagged edges when I am unable to replicate this with my own OpenGL programs
or by overriding the AA settings in the driver's Control Panel.
3. How iPhone and WebGL games achieve such high quality rendering without
any apparent negative effect on performance.
4. How JavaFX graphics will compare with native iPhone and WebGL apps in
terms of quality and performance.

Thanks,

John

-----Original Message-----
From: Richard Bair [mailto:[email protected]]
Sent: Friday, 26 July 2013 03:51
To: John C. Turnbull
Cc: [email protected]
Subject: Re: Antialiasing in 3D

John, did you feel this got answered by Chien's last comments?

Richard

On Jul 20, 2013, at 1:05 PM, John C. Turnbull <[email protected]>
wrote:

There has been recent discussion here regarding the 3D antialiasing
options in JavaFX 8.



For mine, there needs to be a way to specify both the *type* of AA
(MSAA, FSAA etc.) and also the *magnitude* (2x, 4x etc.).  There also
needs to be a way for the application to determine the range of
settings available on the GPU so that it can select the particular
options it wants (perhaps via user input).



Given this, I have some additional comments.



First, there seems to be 2 main approaches to applying AA to 3D
scenes.  The first is what I am personally accustomed to in work I have
done with OpenGL.
With this approach you pretty much write directly to the primary
buffer and thus allow the AA settings to be overridden by the driver
configuration.
For example, on my Windows 7 machine which sports a high-end NVIDIA
GPU, I can go into the NVIDIA Control Panel and then fiddle with all
manner of AA and other 3D settings.  I can choose anything from 2x to
32x with various combinations of MS, SS and CS.  The results of this
tinkering are immediately obvious and range from high-performance
chunky graphics to super-smooth graphics with very low frame rates.
The point is that I the user have full control over how the graphics
are rendered and I get to choose between performance and quality or a bit
of both.


The other approach is where the scene or sub-scene is rendered into an
off-screen buffer.  When the buffer is created, the AA settings (such
as the number of samples) are specified and this/these buffer(s) can
then be blasted onto the screen later.  Here it is the developer who
has full control over the AA settings as with this approach the end
user is unable to override these settings in their GPU driver's "control
panel".


Which of these approaches will be taken with JavaFX 8 3D?  I am
guessing it's the second approach or a combination of both approaches.



I am especially curious because I have noticed some unusual things
about 3D on some platforms.



For example, on my iPhone I can play 3D games and they seem to perform
very well.  What's really interesting to me is that the quality of the
3D graphics is absolutely outstanding with barely a jaggie to be seen.
I think someone mentioned in the previous thread on JavaFX 3D and AA
that only levels of 2X MSAA were possible on most phones but if this
is the case then how do they get the graphics to be rendered with such
high quality?  I doubt it's all about the retina display as I have
seen equally smooth graphics on some Android phones which do not have such
high resolution screens.


Similarly, I find that the 3D graphics rendered via WebGL (on all
platforms) are also of a very high quality with seemingly no negative
impact on performance.  In fact, on my Windows 7 machine I am unable
to achieve the same level of quality in my own OpenGL applications
even when the highest quality settings are configured in the NVIDIA
Control Panel as is achieved in many WebGL games on the same machine.



With both the iPhone and WebGL I find that tuning the settings in the
Control Panel has absolutely no effect on the quality of the rendered
graphics so I am very curious to know just how they can achieve the
high quality rendering and also if JavaFX can somehow "tap into" these
techniques as well.



Could someone from the JavaFX 3D team please comment on these
observations?


Thanks,



-jct


Reply via email to