Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (524)
Games in Android Showcase (127)
games submitted by our members
Games in WIP (592)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  FXAA news  (Read 1726 times)
0 Members and 1 Guest are viewing this topic.
Offline theagentd

« JGO Bitwise Duke »


Medals: 361
Projects: 2
Exp: 8 years



« Posted 2011-12-24 22:15:20 »

No, I am not here to flame FXAA (that much) this time.

The development is being continued by Timothy Lottes, the guy who came up with the idea and he seems to completely realize the inherent flaws of FXAA, with the newest FXAA version 4.0 being much more compatible with other antialiasing algorithms for better subpixel accuracy. Since Battlefield 3 came with both MSAA and FXAA and delivered pretty nice results (the best of both worlds, except for performance of course) and since FXAA is very effective at removing jaggies, I now have a little more faith in post antialiasing. FXAA 4 looks like it slightly improves the quality of 4xMSAA, and also has some really amazing support for scaling images, allowing you to both increase and decrease the resolution while getting very VERY nice smooth edges. Due to the simplicity of the FXAA filter (only a single fullscreen shader pass) it would be possible to easily combine it with Dynamic Resolution Rendering for real-time adaption of quality vs performance. It also uses a temporal SSAA filter to reduce temporal AA (e.g. shimmering, which FXAA doesn't improve much at all) which increases subpixel accuracy, similar to what the dynamic resolution article mentioned.


Cons:
 - Reducing the size of the render target will increase severity of the shimmering even more of course, and it might not be good to dynamically lower the resolution too much.
 - Similarly, increasing the size of the render target (= fractional ordered grid supersampling) requires n^2 more pixels for n more shades of samples, which is why MSAA and SSAA use jittered or rotated sample locations. 2x2 OGSSAA = 4x the number of pixels, while 2x Rotated Grid SSAA is only 2x the number of pixels but almost identical quality.
 - FXAA is still not compatible with MSAA or SSAA with better sample patterns than ordered grids, requiring a downsample for MSAA before processing. Ideally, we want to blur between samples in that case, not between resolved pixels.
 - Supersampling is also insanely expensive even at low sample numbers. I mean, if it was fast in the first place, we wouldn't be using anything else, so combining a very fast FXAA filter with insanely slow, badly scaling SSAA is a pretty cheap trick for improving the quality of FXAA.
 - There's a reason why temporal SSAA is rare: severe ghosting. Again, we're just getting blurring, but this time between frames, not between pixels.

Pros:
 - Dynamic resolution can give an expensive but often missing supersampling feature in games, and the built-in high-quality antialiasing scaling of FXAA 4 is obviously extremely well matched for both upsampling and downsampling (see Timothy's blog).
 - FXAA 4 works on not only screen aligned jaggies, but even on blurred and bilinearly filtered aliasing too now (but how this actually looks in motion is unknown ATM).
 - Better compatibility with other antialiasing algorithms. The main problem with low SSAA is the low sample count (due to the performance cost) resulting in a bad gradient, which can be solved by applying FXAA to the supersampled image. Even 4xMSAA receives a noticeable improvement in gradients.
 - Performance! Fast as hell! It currently claims that "a mid-range 560 Ti is likely able to process a 1080p frame in around 0.36 ms."!
 - Uses motion vectors for the temporal SSAA, which reduces ghosting a little bit. This is pretty much free since you need those motion vectors for motion blur anyway.


My point is that FXAA is moving in the right direction. I've never been skeptical about post-processing antialiasing, but rather how they are branded as a replacement for tradition antialiasing. I don't know how much this actually will improve the temporal aliasing situation that the old FXAA algorithm failed to do much about, but the author is realizing that this is the main problem of FXAA and is working on solutions for it. We are finally seeing a realistic contestant/improver to MSAA and SSAA, which in the end might improve antialiasing in games to come. My current ideal solution to aliasing is no longer insane amounts of supersampling and/or multisampling but MSAA + FXAA + dynamic resolution SSAA. Now, if we could only get support for FXAA on unresolved MSAA, we could be looking at a revolution in realtime antialiasing. This is even more exciting than when I found the combined MSAA/SSAA antialiasing modes in the NVidia drivers.  Grin

Myomyomyo.
Offline ra4king

JGO Kernel


Medals: 355
Projects: 3
Exp: 5 years


I'm the King!


« Reply #1 - Posted 2011-12-25 04:23:28 »

Well in the end, which one should I use in BF3? I have a GTX 570 Smiley

Offline theagentd

« JGO Bitwise Duke »


Medals: 361
Projects: 2
Exp: 8 years



« Reply #2 - Posted 2011-12-25 08:55:18 »

Well in the end, which one should I use in BF3? I have a GTX 570 Smiley
I dunno, I don't have the game or a decent computer to try it on. xD Since FXAA is so cheap as long as you can live with the blurring, keep it on if you like it. MSAA is really expensive for the game, so I don't think you should enable any MSAA for anything under an SLI/Crossfire setup.

If DICE adds FXAA 4 with well-implemented temporal SSAA to BF3, I would instantly go and buy it just to try it out. I haven't bought it yet because I don't want to play it on my laptop which is the only thing I have access to at the moment. That way, we could get FXAA 4, temporal SSAA and MSAA working together to deliver insane quality. Even FXAA 4 + temporal SSAA+ 2xMSAA would probably look better than 4xMSAA, and more importantly perform better. If they also added dynamic resolution rendering combined with FXAA 4, I would die of happiness.

Myomyomyo.
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

toopeicgaming1999 (51 views)
2014-11-26 15:22:04

toopeicgaming1999 (44 views)
2014-11-26 15:20:36

toopeicgaming1999 (8 views)
2014-11-26 15:20:08

SHC (24 views)
2014-11-25 12:00:59

SHC (24 views)
2014-11-25 11:53:45

Norakomi (26 views)
2014-11-25 11:26:43

Gibbo3771 (23 views)
2014-11-24 19:59:16

trollwarrior1 (36 views)
2014-11-22 12:13:56

xFryIx (75 views)
2014-11-13 12:34:49

digdugdiggy (52 views)
2014-11-12 21:11:50
Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!