Verite V1000 Antialiasing

Uttar said:
Here's a possible solution:
Use the same color as one nearby sample.

Sure, it degrades quality. But as I said before, it shouldn't give worse quality than traditional 4x AA.

The real problem with the whole method is that it's hard to implement.
Yup. You need some sort of method that can combine color values once you exceed the 4-color limit. The problem is that there is no such method that works correctly in all cases.
Agreed, Rotated Grid is on overall better than Ordered.
But it seems nVidia really want to use a perfect sampling pattern the next time they change their sampling patterns.
Too bad there's no such thing ;)
To the point of avoiding stopgap solutions, it seems, which is the part that doesn't make sense.
What did you mean here, exactly?
What prevents you from only writing one color value when there's only one color value per pixel, when using Fragment Antialiasing?
It just seems to me that the Color Compression methods used today are a special case of a Fragment Antialiasing algorithm.
Or anyway, they could be, depending on how it's implemented.
My point? The way I see it, Fragment AA and Color Compression are essentially different features - Color Compression doesn't affect the color of any pixel/sample while Fragment AA potentially does (due to the color count restriction).

You suggested a Fragment AA scheme with a bitmap containing 3 bits per pixel that indicates which color (out of a total of max 4) is used for each of the 16 samples - for the common case where you have 1 or 2 colors per pixel, this bitmap is in turn extremely compressible itself (which is important, given that it takes ~48 bits per pixel). For example, you could store 1 additional bit per pixel, set to '1' if all samples of the pixel have the same color and '0' otherwise. Adding this bit allows you to avoid storing the full bitmap for any pixels that have only 1 color, at the cost of 1 additional bit for all pixels with 2+ colors.
 
arjan de lumens said:
Uttar said:
Here's a possible solution:
Use the same color as one nearby sample.

Sure, it degrades quality. But as I said before, it shouldn't give worse quality than traditional 4x AA.

The real problem with the whole method is that it's hard to implement.
Yup. You need some sort of method that can combine color values once you exceed the 4-color limit. The problem is that there is no such method that works correctly in all cases.

Of course.
But it should still give quality as good as 4x even in such a case, shouldn't it?
The goal is to give overall quality higher than 4x, often near 16x, fairly cheap. Having quality not higher than standard 4x in rare cases shouldn't be that much of a problem - the eye will hardly see it, anyway.

What did you mean here, exactly?
What prevents you from only writing one color value when there's only one color value per pixel, when using Fragment Antialiasing?
It just seems to me that the Color Compression methods used today are a special case of a Fragment Antialiasing algorithm.
Or anyway, they could be, depending on how it's implemented.
My point? The way I see it, Fragment AA and Color Compression are essentially different features - Color Compression doesn't affect the color of any pixel/sample while Fragment AA potentially does (due to the color count restriction).

You suggested a Fragment AA scheme with a bitmap containing 3 bits per pixel that indicates which color (out of a total of max 4) is used for each of the 16 samples - for the common case where you have 1 or 2 colors per pixel, this bitmap is in turn extremely compressible itself (which is important, given that it takes ~48 bits per pixel). For example, you could store 1 additional bit per pixel, set to '1' if all samples of the pixel have the same color and '0' otherwise. Adding this bit allows you to avoid storing the full bitmap for any pixels that have only 1 color, at the cost of 1 additional bit for all pixels with 2+ colors.[/quote]

Stupid me, I didn't think of that...
Color Compression should become less complex though, shouldn't it? Or am I being stupid again?


Uttar
 
Uttar said:
Colourless said:
Uttar said:
nVidia's stand on Rotated Grid is very simple.
They don't like it because it's horrible for some rare cases.

This is an alternative to Ordered Grid which is horrible in lots of really common cases?

LOL, good point.
As I said, nVidia thinks their "xS" is better, because it's *never* "horrible".
But, in most cases, it's worse than rotated.

The real question is when they'll introduce it with true multisampling...

Uttar

Sorry - this just seems like bunk to me.

I don't think there are any edge cases where the 4XS sampling pattern is significantly better (or even noticeably better) than the sparse grid chosen for our 4X mode. Of course, our grid in this case is not just rotated, the samples are actually slightly offset from an exact rotation as well.

I would point out that we could quite easily reproduce the exact same grid as 4XS if we desired, but it's just inferior IMO - it's skewed (not even rotated), so it's good on near-horizontal edges, but only about equivalent to a 4X ordered-grid mode on near-vertical gradients. In other words it is 'horrible' at a very critical angle - near vertical.

Our grid is very good at near-horizontal and near-vertical edges, with the critical angles (where you get the least anti-aliasing effect) arranged so that they are of minimal importance. I don't think there's a much better 4 sample pattern that you could choose.

4XS is about equivalent in near-horizontal sub-sample distribution to our 4X mode, but, of course, it appears no to have sub-sample gamma correction.

Just IMHO. :)

- Andy.
 
Andy: Thanks for the response :)

First of all, let me insist that I think ATI's 4x AA pattern is absolutely great. I've not owned an ATI product for a long while ( I had a Rage, IIRC ) , but this is the type of thing that truly makes me think that competition is going to remain powerful and exciting in this industry.

What I was saying is not really my opinion. It's my idea of why nVidia isn't adopting RGMS.

I wouldn't say 4xS is "horrible" in near vertical - but it is absolutely obvious that it is significantly inferior to your pattern.
As you mentioned yourself, 4xS doesn't support gamma correction, making it inferior to your 4x pattern. This is obviously correct, and I even mentionned it a few posts back. Was mostly focusing on patterns, however.

You mentionned that your pattern ( or grid, as you call it, probably more rightfully ) is offset to minimize the effects of bad angles. That's quite interesting, and I must admit that I never realized that. This could very well nullify my whole "rotated is horrible at some angles" argument.


Also, I do not believe rotated is that easy to implement in nVidia technology. Looking at the similarities between patterns, it seems nVidia's approach is fairly different from ATI's one. It nearly seems to me that nVidia only got one sampling pattern for 2x, then can apply very minor modifications on it and apply it multiple times to get a higher number of samples.

Finally, you say:
I don't think there's a much better 4 sample pattern that you could choose

Maybe, as long as you remain in "conventional" approaches. I'd be surprised if some more complex algorithms couldn't do it slightly better.


Uttar
 
Uttar said:
Also, I do not believe rotated is that easy to implement in nVidia technology. Looking at the similarities between patterns, it seems nVidia's approach is fairly different from ATI's one. It nearly seems to me that nVidia only got one sampling pattern for 2x, then can apply very minor modifications on it and apply it multiple times to get a higher number of samples.

One way to view it is that NVIDIA has one sampling pattern, 4x ordered grid. To that pattern they can make one single modification: removing 2 sample points, leaving them with 2x rotated grid. Those are the only AA sample patterns supported by the gf3, gf4, gf4mx and gffx.

To overcome this limitation, they use an old trick: rendering to a higher resolution than specified by the application, and then scaling it down to display the result. So by combining the two AA modes with different amounts of backbuffer enlargement, they achieve the different sampling modes they offer. But this is a bit limited way to do things. It's supersampling, so it's slow. And it doesn't allow for rotated grid supersample patterns. (It's possible they could rotate everything when rendering onto the higher resolution backbuffer, and then rotating it back onto the frontbuffer to get rotated grid SS, but that would be messy)

4xS is 2xRGMS + a backbuffer that is twice as high as the front buffer. The result is that the 2x RG pattern gets ‘squashed’ and you end up with a skewed grid. And that is really the best they can do with 4 samples (unless they try the ‘rotate everything onto the backbuffer’ thing I mentioned above) until they improve their hardware.

I don’t think that NVIDIA believes that a skewed pattern is in any way better than a rotated grid pattern, it’s simply the best they can do at the moment. I’m sure that they would love to have the gffx support rotated grid AA, but that would add complexity to an already complex design. (2x RG needs one bit of precision in the x direction and one in the y direction for placement of the samples, 4x RG needs 2 bits of precision in each direction, 3 or more if you want to jitter the samples like the R9700 does)
 
Uttar said:
nVidia's definition is to use more sample points than colors.
4 colors & 16 ordered samples would certainly give higher quality than 6 colors & 6 rotated samples.
Replace "certainly" with "usually" and your statement would be ok. There will be times when the visibility of objects should have an effect on the texture sampling.
 
Simon F said:
Uttar said:
nVidia's definition is to use more sample points than colors.
4 colors & 16 ordered samples would certainly give higher quality than 6 colors & 6 rotated samples.
Replace "certainly" with "usually" and your statement would be ok. There will be times when the visibility of objects should have an effect on the texture sampling.

Hmm, yes. But what I meant was that the overall quality of the scene would be certainly higher.
I'd be very surprised if those rare cases where 4x & 16s look worse than 6x & 6s would be so frequent that the overall quality would be worse.

Of course, I could be wrong on this. I guess only trying it would proof it right or wrong... Unless there's some theorical data I've forgot to consider?


Uttar
 
Back
Top