AA/AF enhancements

Ante P

Veteran
So we've got NV40 and R360 and what not on the incoming.

Has anyone heard anything about the future FSAA implementation that nVidia might have in store?

I'll throw a fit if NV40 sports the same lousy FSAA that the NV3X does. I mean nVidia hasn't done jack to AA quality since they launched the GF3 two and a half years ago. (Well ok they changed their Cuncunx from "really crappy" to just "crappy", whoopeee)
And yet they sit on 3dfx IP... how ironic is that? :?

AF hasn't really avolved much either since it was first introduced on R100/NV10.

I'm just curoius of what things ATi and nVidia might have in store.

Reading all the hype about unified shaders this, dynamic branching that just got me thinking: we'll never even see the games that use that stuff until the boards is long since dead in any case.
NV30 might have had the ULTIMATE shaders for all I cared, but if it still had the crummy FSAA that it has I wouldn't be very impressed: I play a hell of a lot more games with FSAA/AF than I do games that contain hyper advanced shaders with 78923872378253 incstructions.. ;)

Is 6x RGMSAA with GC really the ultimate outpost when it comes to FSAA.. I think not. Yet there was never any real hype about this compared to the amount of hype we've heard about the shading capablities.

So what type of AA and texture filtering might the future hold for us?
When will we see some new takes on it?
I know this has been discussed from time to time but generally most discussion have mainly concerned the techniques that are present today only.
 
No idea about future products, so I'll speak in a general perspective here.

AF: More effective adaptive algorithms is really all we'll see here IMO. Higher levels with more adaptivity, to give an overall better image with similar performance hit to today's levels, is all I'm imagining. Of course, I've never been very interested in this, so maybe other people will give a better answer...

AA: 6x RGMSAA with GS is certainly not the end of the road IMO. On the number of samples POV, I believe 9 samples might be the practical limitation. Why?
The screens users have *are* becoming bigger: how frequent are 14" now, beside for notebooks? ( with notebooks being the nasty little boy here, but research likely will be in bigger resolutions without bigger screens there I suppose )
Now, if you get 9x RGMSAA with GC @ 1600x1200 or even 1280x1024, I doubt you'll be able to see the jaggies without a microscope :)

Of course, even then, better is always better. But the trick wouldn't reside in increasing the number of samples anymore: more like in placing them better. ATI is already doing this a little, because they aren't really using RGMSAA, they're using a handmade grid where the positions of the four samples has been tested by them in order to get the best possible IQ ( or so they say... ) - 6x AA is another matter, because IMO, their patterns for it are really bad, and they've got nothing to be proud of there.

Now, there, we still remain in "traditional" AA. There *are* other ways, such as temporal sample location: the sample location change with time to make sure the eye doesn't get used to it. Loads of possible tricks in this area, but you can get some annoyance with it because if the scene is idle, it'll look, well, odd.

I've actually once posted my proposed algorithm here for AA sample positioning. Got few responses, though, because I was too lazy to implement it and because my explanation was very messy.
The idea of the algorithm, to summarize, is to NOT have AA sample positions. You determine the number of covered samples on the fly based on the ideal position of the line in a non-AAed world, then you determine which samples are to be covered based on the ideal position of the line in the AAed world.
It should work because the selected covered samples on nearby triangles, such as in a mesh, are never the same ones, thus resulting in no artifacts.
Sadly, the algorithm is VERY expensive implementation-wise. It doesn't cost you a cent more bandwidth, but on a computation POV, it's really very consuming. So I don't expect it to ever get in hardware, at least not in the foreseeable future.
I've never tested the algorithm due to lack of time, but maybe I'll try implementing it sometimes this summer...


Having non-static sample positions really seem to be an interesting idea, however, and that is quite possible to implement in hardware IMO.


Uttar
 
I said this prior to the NV30 launch, along with virtually everybody else. nVidia _must_ be using some of that 3dfx IP in their upcoming NV30 chip, right?

We all know how that panned out. If the next chip comes out with the same old crappy AA modes, then I will pretty much officially give up on this Company. It would be the ultimate signal that they've completely lost touch with their users. How often is it that we've seen it acknolwedged that ATI has significantly better AA than nVidia? Heck, a recent PR from ATI even threw this concept in one of their paragraphs.

I can only hope, along with pretty much everybody else, that NV40 will finally address this issue, and ultimately eliminate that crappy Quincunx mode altogether.
 
Uttar said:
I've actually once posted my proposed algorithm here for AA sample positioning. Got few responses, though, because I was too lazy to implement it and because my explanation was very messy.
The idea of the algorithm, to summarize, is to NOT have AA sample positions. You determine the number of covered samples on the fly based on the ideal position of the line in a non-AAed world, then you determine which samples are to be covered based on the ideal position of the line in the AAed world.
I can't remember if I commented on this before, but how different (in priciple) would this be to the Exact area method described by Andreas Schilling at Siggraph '91? It is quite interesting but apparently SGI found some problems with it.
 
Uttar, what exactly is wrong with ATI's 6x AA sample positions?
Its a sparse sampled grid, according to the discussions here previously, i have concluded that it is quite good - exactly contrary to your conclusions.
Care to elaborate on what makes it bad? Care to offer a better sample position set?
 
I would like to see AF take less of a hit in performance myself, the nv3x and r3xx both take a pretty big hit when enabling their highest AF modes, I guess better adaptive algorithms is about all you can do though to increase that performance?
 
Simon F: Interesting paper, thanks. Seems the result would be about the same, my idea is pretty much the same thing but a lot less optimized and an awful lot slower.
Do you know what type of trouble SGI ran into? Performance trouble, or IQ one?

Althornin: Okay, so it isn't *bad*, it's certainly better than nVidia's 6x sample positions, but it still isn't great compared to what I believe is possible with 6 samples. Of course, I could be wrong here, but it just doesn't look much better than 4x AA... I think some screenshots showed it looked better in some cases, but even slightly worse in others, not sure if my memory serves me well.


Uttar
 
Typedef:
I said this prior to the NV30 launch, along with virtually everybody else. nVidia _must_ be using some of that 3dfx IP in their upcoming NV30 chip, right?

A product too late to be of any competition to the competition's product? :LOL:
 
3dcgi said:
Nvidia did use some 3dfx IP in the GF4. They implemented filter on scanout.

IIRC, they also used Rampage's 2D engine nearly unchanged :) Talk about choosing the right IP to use!

Reverend: You, sir, are biased :)


Uttar
 
Reverend said:
I'd like to see the end of various AF driver-controlled options.

Then again, I'm a reviewer, hehe :)

For a reviewer the most important thing would be to set AF from the game it the game has an option for it rather that from the control panel.

The game can be more smart about where to apply AF and where not. For example for shadow buffering AF is reducing the quality instead of increasing it (while it's also slower).

Forcing the setting from the driver in this case will lead to lower score and lower image quality.

I'm writing this as it seems that people are surprised to see different 3dmark03 scores with driver/app enabled aniso.

I think forcing aniso from the drivers will be one of the most common reviewer mistake for Doom3.
 
Uttar said:
Simon F: Interesting paper, thanks. Seems the result would be about the same, my idea is pretty much the same thing but a lot less optimized and an awful lot slower.
Do you know what type of trouble SGI ran into? Performance trouble, or IQ one?
Uttar
IQ. They described it in a later SIGGRAPH paper... but I can't remember the details. My head is currently full of texture related papers and I need to swap some stuff out.
 
Hyp-X said:
Reverend said:
I'd like to see the end of various AF driver-controlled options.

Then again, I'm a reviewer, hehe :)

For a reviewer the most important thing would be to set AF from the game it the game has an option for it rather that from the control panel.

The game can be more smart about where to apply AF and where not. For example for shadow buffering AF is reducing the quality instead of increasing it (while it's also slower).

Forcing the setting from the driver in this case will lead to lower score and lower image quality.

I'm writing this as it seems that people are surprised to see different 3dmark03 scores with driver/app enabled aniso.

I think forcing aniso from the drivers will be one of the most common reviewer mistake for Doom3.
My post was a cheeky one, in case that wasn't clear.

Hyp-X, are you talking about pre-filtering?If Doom3 has a AF option (I'm assuming it's one wher it will read either "on" or "Off"), what does that mean on various hardware? What would a GF3 owner get and what would a R9700 owner get if it's "On" in both cases?

Get what I mean?
 
Hyp-X said:
For a reviewer the most important thing would be to set AF from the game it the game has an option for it rather that from the control panel.

The game can be more smart about where to apply AF and where not. For example for shadow buffering AF is reducing the quality instead of increasing it (while it's also slower).

Forcing the setting from the driver in this case will lead to lower score and lower image quality.

I think that generally speaking people tend to make the mistake of assuming that the correct way to enable features is using the control panel - after all, it seems so simple. Just turn it on and go, right? It's on for all applications, problem solved.

Hyp-X makes a good point (and picks a good example) - control panel options are really only there for circumstances where the application does not support the features - essentially to make the goodies available to users for legacy applications. In applications that directly support the features I think the correct way to enable them is always to use the application's own options. Application mode is the default for a reason - to give the application writers full control over all features and filtering modes to guarantee that their customers always get the right visual result.

I sincerely hope that the presence of the control panel options does not make developers lazy, relying on IHVs to implement features for them - that seems very backward. Hopefully this will not happen, as generally speaking developers would prefer that the control panel options disappear completely - it potentially saves them from fielding support calls on applications where bugs occur with certain control panel features enabled.
 
andypski said:
I sincerely hope that the presence of the control panel options does not make developers lazy, relying on IHVs to implement features for them - that seems very backward. Hopefully this will not happen, as generally speaking developers would prefer that the control panel options disappear completely - it potentially saves them from fielding support calls on applications where bugs occur with certain control panel features enabled.

They've been lazy with AA/AF and Vsync controls since the dawn of time IMHO.
I can barely count three games which has controls for AA, AF and Vsync.
The few that does have controls often have very incoplete control.

As in the example described realier. Just an Aniso on or off switch. (Like in JKII where it only sets 2x Aniso when On)

Or the more common mistake only providing in game options for 2x and 4x AA.

I though this would get better over time since all modern boards can use some level of AA/AF, even GF4MX440 can use 2x AF or 2x AA in a handfull of games etc.
But I still can't see much of a change at all..
 
Okay, so it isn't *bad*, it's certainly better than nVidia's 6x sample positions, but it still isn't great compared to what I believe is possible with 6 samples. Of course, I could be wrong here, but it just doesn't look much better than 4x AA... I think some screenshots showed it looked better in some cases, but even slightly worse in others, not sure if my memory serves me well.

Personally I think the improvement over 4* varies depending on the App (Game) but is especially noticeable in Homeworld. However would it be possible we're just getting to the point of diminishing returns on this type of AA?

PS: Never seen a game where it looks worse, always better but sometimes by more than others.
 
Back
Top