Sampling Comparison
So does it help?
We now understand why multi-sampling doesn't bring about a pixel-production rate hit, however it does bring about a 4x (assuming 4x anti-aliasing) bandwidth hit. Super-sampling and multi-sampling have the same bandwidth requirement. In both cases we are dealing with four times the data.
We have four separate pixels, and while each has the same color, there is a color value for each sub-pixel and this needs to be stored and sent across the memory bus. Included as well are four Z/stencil values. The key savings comes from the fact that we have to do just one texture read. So one might wonder what use is saving pixel-production rate if we are still going to be bandwidth limited.
The answer is that future technologies will allow us to be less and less bandwidth limited. Technologies such as deferred rendering, early Z checks, Z-buffer compression and hierarchical Z buffers are going to reduce bandwidth requirements and allow for increased performance with multi-sampling. So there will be a great deal to gain.
Comparison
Next, we compare multi-sampling to super-sampling to see the drastic difference between the two. With super-sampling, the primary anti-aliasing function comes from averaging sub-pixels. Each sub-sample has a unique color, and these are averaged for the output pixel. This requires either four clocks per-pixel, or one clock with four pixel pipelines.
Since multi-sampling has the same color value for each sub-sample, averaging accomplishes nothing. Multi-sampling anti-aliases based on edge coverage, and this is determined by what sub-samples fall on an edge. So if a polygon edge is within 3 of 4 sub-samples you have 75% coverage and so your value is at 75% intensity. In an efficient implementation this can be done in a single clock per-pixel. Here are several illustrations to show different levels of coverage for different situations.
![Multi-Sampling Anti-Aliasing Explained [ 25%, 505, and 75% coverage @ 650 x 300 ] > View Full-Size in another window.](images/coverage-s.gif) 25%, 505, and 75% coverage
|
What else?
Since multi-sampling works on coverage to achieve anti-aliasing, we see that texture aliasing is not addressed. This, however, is perfectly acceptable. Texture anti-aliasing should truly be achieved through more advanced forms of texture filtering. For example, a high quality 64 or 128-tap anisotropic filter produces considerably better texture quality than super-sampling. We should certainly expect high quality texture filtering to be present along with the anti-aliasing in order to deliver extremely good results.