Antialiasing in 3D

Herve Girod herve.girod at gmail.com
Sun Jul 21 05:47:51 PDT 2013


I was under the impression that vidéo games for example explicitly allow to
set the AA settings, with a default setting which usually is automatia .
Maybe it is possible to override them using the driver configuration, but I
doubt many people do it.


2013/7/20 John C. Turnbull <ozemale at ozemail.com.au>

> 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