Jittered, rotated and skewed grid AA

K.I.L.E.R

Retarded moron
Veteran
They are all the same are they not?

I do realise when you skew something you are not making the pixels nervous like when you jitter the pixels. ;)

Seriously: I believe that they are all the same but logically I believe there are differences between them all.

If my logical mind is telling me the truth then what have Ati really implemented? RGMS or JGMS?

Thanks
 
Thanks for the bleeding obvious. :LOL:

I mean in computer graphics about how they all stack up against another, if the provide the same/similar results to one another.
 
Hmm...I thought Rotated and Skewed grid were the same.

I thought the Jittered basically meant varying sampling patterns, sort of like a mini noise filter to aid in breaking up aliasing to the human eye.

For example, I'm under the impression that ATi's AA can often be called all 3 in 2x and 4x modes.

I'm sure someone will come along with accurate info at some point.
 
The problem is that people who discuss this end up thinking that all these modes are all the same. I don't see that they are but I was doubtfull of what my logic was telling me and that is why I posted this.

3dfx used a RG pattern.
nVIDIA use an OG pattern.
Ati use (here is the big one) a JG pattern.

but

Somewhere down the line I heard reviewers and such call it a RG pattern.
Here is where the confusion takes off.

People refer to JG as RG as well as SG (skewed grid).
It's like that there is no difference whatsoever. I am pretty sure that RG is more expensive than JG in terms of performance. How do I go about finding out if I am right?

Well, I came to the conclusion that my human calculators err... I mean friends ;) :LOL: at Beyond3D would know. :D
 
K.I.L.E.R said:
3dfx used a RG pattern.
nVIDIA use an OG pattern.
Ati use (here is the big one) a JG pattern.

The 4x FSAA on the Ati R3x0 are clearly using a RG pattern, nVidia 4xS mode are using a skewed grid.
 
Tim said:
DaveBaumann said:
ATI's is a sparce grid...

That is only for 6x isn’t it? 4x looks very much to be a RG to me.

according to somebody at ATi , 4x is also sparce .

3dfx used RG with limited jitter capablilities afaik
 
Tim said:
DaveBaumann said:
ATI's is a sparce grid...
That is only for 6x isn’t it? 4x looks very much to be a RG to me.

A sparse grid can be made to look like any of the other grids (ordered, rotated, skewed, whatever) depending on the pattern chosen for the subsamples.
 
If you look at the ATI 2X AA its slighly off center, so I think that may use a Sparce grid as well.

Take a look at that SGI link KILER put up a couple of days ago - it also talks of a space grid sampling system:

Anti-aliasing: True 4 or 8 subsample full-scene anti-aliasing selected from a 64-element grid with per-pixel samples variations to maximize image quality.

What it sounds like to me is that an 8x8 per pixel precision Z buffer is defined and various sample points are selected from the 8x8 grid to make up a desired pattern. I believe what then occurs is that the unused positions are effectively 'blanked out' so that they aren't eating up Z buffer memory and bandwidth. I believe this to be a similar system to how ATI is doing things.

I'd welcome comments from someone if there are misconceptions in there.
 
Now, if only I can take all this in at once. :LOL:

(BTW: Thanks for making the links visible Dave)



If you look at the ATI 2X AA its slighly off center

I thought all types of AA makes the picture look off center?

Anti-aliasing: True 4 or 8 subsample full-scene anti-aliasing selected from a 64-element grid with per-pixel samples variations to maximize image quality.

Okay, shouldn't this mean either 2x2 or 2x4 or 4x2? Horizontal-vertical.
WTH does a grid come in? Don't they mean breaking up the scene into grids for the chips to work on?

Per pixel samples? So AA is done through the pixel shader otherwise it would be too slow.

What it sounds like to me is that an 8x8 per pixel precision Z buffer is defined and various sample points are selected from the 8x8 grid to make up a desired pattern. I believe what then occurs is that the unused positions are effectively 'blanked out' so that they aren't eating up Z buffer memory and bandwidth. I believe this to be a similar system to how ATI is doing things.

This for some reason is incredibly easy for me to picture in my head. It scares me. :oops:

A sparse grid can be made to look like any of the other grids (ordered, rotated, skewed, whatever) depending on the pattern chosen for the subsamples.

OMG!!! Ati can practically do whatever the hell they want then?
So sparce grid allows for any of these modes of AA. Then they must be using jitter capabilities on a rotated grid?

Apologies if I sound like a dolt today. :?

Thanks for the help guys.
 
First, there is no such thing as rotated grid AA. :)

All cards I know of (including 3dfx) that do "RGSS" is actually doing sparse sampling. N samples positions can be set within a grid. For 3dfx these sample positions are used for all pixels, for ATI they can change from pixel to pixel. Or so it's said. I don't think it's been used for anything else than the R200 performance modes. And in that case just a limited version of it.

RGSS is just a special case of this for 2xAA and 4xAA. It's got its name since it looks like an ordered grid where you've rotated the subsamples around the center of the pixel. But that's not actually the case. If you do that, the samples would be located closer to each other, in a suboptimal pattern.
So the optimal sparse sampling pattern for 2xAA and 4xAA looks (almost) like a rotated grid, and that's the reason for the name.

Skewed grid refers to when you place the samples optimally in one dimension, but not the other. In this case optimal in vertical direction (for horizontal edges), but not the other way.
Code:
.X....
....X.
.X....
....X.
 
Actually, I thought that 3dfx used a jittered sampling method. That is, they actually used the different triangle setup engines of the different chips (or pipelines) to generate the different sample positions. This would probably have been less efficient than a spare sampling method, but it was the impression I got at the time of how the Voodoo5 did things.
 
demalion said:
I thought the Jittered basically meant varying sampling patterns, sort of like a mini noise filter to aid in breaking up aliasing to the human eye.

Bingo. That's exactly what 3dfx's method does, to prevent the eye from 'tiring' of the same 'boring' pattern. (the human eye becomes bored with regular patterns very quickly)
 
K.I.L.E.R said:
OMG!!! Ati can practically do whatever the hell they want then?
So sparce grid allows for any of these modes of AA. Then they must be using jitter capabilities on a rotated grid?

afaik atis AA patterns aren't 'hardwired' but programmable on the r300, presumably you could put all 6 samples in a vertical line or bunch them all at the center.

I don't think the v5's are fixed either (thread here (i think) a while back with v5 6000 patterns in it)

r200 does show evidence of switching sample patterns in its non ordered 2x mode and it was originally intended, according to the pdf on atis site, to also be programmable and pseudo random, I think its fairly safe to say its borked somewhere in the hardware though
 
Tagrineth said:
demalion said:
I thought the Jittered basically meant varying sampling patterns, sort of like a mini noise filter to aid in breaking up aliasing to the human eye.

Bingo. That's exactly what 3dfx's method does, to prevent the eye from 'tiring' of the same 'boring' pattern. (the human eye becomes bored with regular patterns very quickly)
Care to post screenshots to back up this claim? It should be easy to see with the AA quality viewer that's around.
 
Tagrineth said:
Bingo. That's exactly what 3dfx's method does, to prevent the eye from 'tiring' of the same 'boring' pattern. (the human eye becomes bored with regular patterns very quickly)
No, 3dfx's pattern is a fixed "rotated grid" (2x and 4x edit: standard settings of the driver, it can be changed globally) which is actually a special case of a sparse grid like Basic explained. It does not change.

Theoretically it would be possible to change the pattern per primitive, but there is not much sense behind that. The pattern for a given pixel should stay the same to prevent rendering errors.
 
Back
Top