Antialiasing in 3D
John C. Turnbull
ozemale at ozemail.com.au
Fri Jul 26 02:54:08 PDT 2013
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:richard.bair at oracle.com]
Sent: Friday, 26 July 2013 03:51
To: John C. Turnbull
Cc: openjfx-dev at openjdk.java.net
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 <ozemale at ozemail.com.au>
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
>
More information about the openjfx-dev
mailing list