MSAA in NV2x actually is an enhanced SSAA!?

Zephyr

Newcomer
x-bit labs "On the Way to Ideal Picture: Anti-Aliasing by Contemporary Graphics Cards":
NVIDIA's multisampling in GeForce3 is often thought to be opposite to supersampling. That's not right as multisampling by NVIDIA is a logical continuation of supersampling.

The main difference between multisampling in NVIDIA GeForce3/GeForce4/GeForce4 MX and supersampling in NVIDIA GeForce2 chips is that now the chip does not process the same number of subpixels for all pixels in the image. Well, if we are to smooth "jaggies" on the polygon edges only, why do we need to perform useless calculations where it's not necessary, that is, inside the polygon?

Physically, with multisampling turned on, the chip does exactly the same thing as with supersampling: first - building the enlarged image, then - filtering according to a pattern.

it does confuse me, is it right?
 
The main difference between multisampling in NVIDIA GeForce3/GeForce4/GeForce4 MX and supersampling in NVIDIA GeForce2 chips is that now the chip does not process the same number of subpixels for all pixels in the image. Well, if we are to smooth "jaggies" on the polygon edges only, why do we need to perform useless calculations where it's not necessary, that is, inside the polygon?

xbitlabs has no clue what they're talking about, this statement is flat out wrong.

Multisampling DOES process the same number of subpixels (at the same mode of course) than supersampling. The difference is that MS is sharing the same texture value between all subpixels and therefore you don't SEE any difference inside the polygons.
 
What they say can be a correct description, it's just that it's possible to missinterpret. And you've chosen to do so.

MSAA does not process the same amount of subpixels as SSAA in the texture filtering, register combiner or pixel shader part. But they both build a larger image and then downfilter it.

There's nothing new here compared to already known info.
 
If you already know what multisampling is then their statement is understandable, but if you don't its easy to get the wrong impression. You still handle the same number of subpixel but the difference is you do not fetch extra texture samples for the subpixel, all subpixels share the same texture sampling result unlike true supersampling where each subpixel also gets its own texture samples. At the backend (Z check, write out, downsample) supersampling and multisampling are the same.

K-
 
enn... it says that MSAA in NV2x uses a larger image instead of several images. thanks all.

however, there is another puzzle for me: if x-bit labs is right, why can MSAA resolve ''texture edge aliasing"? or "line aliasing that is rendered in the form of texture"?
 
Zephyr said:
enn... it says that MSAA in NV2x uses a larger image instead of several images. thanks all.
What's the difference?
Take a picture with a resolution of, say, 800x600. Then you take all even pixels of all even rows and put them in one picture, odd pixels of even rows in another, even pixels of odd rows in yet another and finally odd pixels of odd rows in a last pic. Now you have four pics at 400x300. Together they contain the same information as the one big image, only at different locations in memory.

Where the pixels are finally stored in a given implementation only depends on the memory controller/layout.
 
These FSAA styles have appeared in the latest det (40.41), they aren't listed in any previous versions. I'm not sure what they all mean and they may be NV30 specific in some cases(?).

4X Mixedsampling (skewed grid, 8-tap filter)
4X Mixedsampling (skewed grid)
4X Multisampling (Gaussian)
4X Multisampling
4X Supersampling (skewed grid, 8-tap filter)
4X Supersampling (skewed grid)
4X Supersampling (Gaussian)
4X Supersampling
4X Supersampling (LOD bias)
2X Supersampling (Quincunx)
2X Quincunx
2X Multisampling
2X Supersampling (vertical)
2X Supersampling (horizontal)

What's the mixed sampling all about?
 
Code:
4X Mixedsampling (skewed grid, 8-tap filter)   Quincunx with 1x2 OGSS
4X Mixedsampling (skewed grid)                *2x RGMS with 1x2 OGSS = 4xS
4X Multisampling (Gaussian)                   *2x2 OGMS with 9tap filter
4X Multisampling                              *2x2 OGMS 
4X Supersampling (skewed grid, 8-tap filter)   2x RGSS with 5tap filter with 1x2 OGSS
4X Supersampling (skewed grid)                 2x RGSS with 1x2 OGSS
4X Supersampling (Gaussian)                    2x2 OGSS with 9tap filter
4X Supersampling                             **2x2 OGSS 
4X Supersampling (LOD bias)                  **2x2 OGSS with LOD adjustment
2X Supersampling (Quincunx)                    2x ?GSS with 5tap filter
2X Quincunx                                   *2x RGMS with 5tap filter 
2X Multisampling                              *2x RGMS
2X Supersampling (vertical)                    1x2 OGSS 
2X Supersampling (horizontal)                **2x1 OGSS
* known modes for GF3/4
** known modes for GF1/2

What I don't understand is how they achieve 4 sample skewed grid supersamping, but at the same time do not provide a 2x RGSS mode.
 
Xmas said:
Zephyr said:
enn... it says that MSAA in NV2x uses a larger image instead of several images. thanks all.
What's the difference?
Take a picture with a resolution of, say, 800x600. Then you take all even pixels of all even rows and put them in one picture, odd pixels of even rows in another, even pixels of odd rows in yet another and finally odd pixels of odd rows in a last pic. Now you have four pics at 400x300. Together they contain the same information as the one big image, only at different locations in memory.

Where the pixels are finally stored in a given implementation only depends on the memory controller/layout.

Yes, if u only consider the pixels, they seem to have no difference. But they do have difference in Triangle Setup and Rasterization, and i think the efficacy of a large image is better than that of several images in this situation.

You still handle the same number of subpixel but the difference is you do not fetch extra texture samples for the subpixel, all subpixels share the same texture sampling result unlike true supersampling where each subpixel also gets its own texture samples.

it can explain why MSAA can't resolve alpha texture problem, but why can MSAA resolve texture edge? Here are some examples, note the ceil lamps on the left:

no FSAA - Parhelia
zephyr_parhelia1024noaa.jpg


16x FAA - Parhelia
zephyr_parhelia1024_16faa.jpg


4x FSAA - GeForce 4 Ti
zephyr_gf410244xaa.jpg


6x FSAA - Radeon 9700
zephyr_r97006xaajk2.jpg
 
Zephyr said:
it can explain why MSAA can't resolve alpha texture problem, but why can MSAA resolve texture edge? Here are some examples, note the ceil lamps on the left:

Actually, here's a slightly clearer example taken from my look at WildcatIII's Super Scene Multisampling AA:

http://www.beyond3d.com/articles/wildcatiii/index.php?page=page8.inc

Specifically, take a look at the numbers on and next to the radio:

AA off
opt_s80int_off.jpg


AA on
opt_s80int_on.jpg


When you look at the geometry in that area it become easy to see why this occurs:

buttons.jpg
 
Nice example Dave. This should also make clear exactly why FSAA is important in the first place.

It doesn't just smooth jaggies in the strict sense. It restores signal information that was lost in the rendering process (the move from infinite resolution --> finite).
 
>>It restores signal information that was lost in the rendering process (the move from infinite resolution --> finite).<<

But isn't that what is, in essence, is causing the jaggies to be reduced in the first place?
 
So are we looking here at some specific NV30 AA methods?

4X Mixedsampling (skewed grid, 8-tap filter) Quincunx with 1x2 OGSS
4X Supersampling (skewed grid, 8-tap filter) 2x RGSS with 5tap filter with 1x2 OGSS
4X Supersampling (skewed grid) 2x RGSS with 1x2 OGSS
4X Supersampling (Gaussian) 2x2 OGSS with 9tap filter
2X Supersampling (Quincunx) 2x ?GSS with 5tap filter
2X Supersampling (vertical) 1x2 OGSS

I know for sure that NV30 will have programmable AA patterns...
 
I don't think we are, these methods would appear to be the current NV2x supported ones. The NV30 emulation only seems to add the new OGL extensions to the driver set. One (ARB_vertex_program) can be seen in the wavey disco wood demo by NitroGL.
 
Looking at Zephyr's JK2 screenies, that R300's 6x AA shot looks delicious!

Why haven't the p/reviews of the R300 thus far talked more about the R300's 6xAA?
 
Question re Dave's Wildcat AA shots - why do the "whites" on the numpad on the AA shot look "less white" in the non-AA shot?
 
Why haven't the p/reviews of the R300 thus far talked more about the R300's 6xAA?

Well, as far as I know, some websites were having problems with 6xAA modes, where the quality was indistinctive from the 4xAA modes (the problem is in the drivers, where u need to restart the maching when switching things for them to take effect).
 
You mean iXBT and all you need to do is a change of resolution within windows for the change to be applied... which OpenGL Guy mentioned.

So not some websites.. just the one.
 
Back
Top