Would it be wrong to say AF is the AA for textures?

Would it be wrong to say AF is the AA for textures?
In the sense that it improves the image quality, yes. In the sense that it performs the same operations, I think no.

SSAA + AF and MSAA + AF which would look better?
Well, SSAA actually performs a sort of AF on textures. You don't really need AF with SSAA. MSAA + AF are a more efficient and specialized way of achieving the basic effect of SSAA.

SSAA filters the whole scene, every pixel, whereas MSAA just filters edges. Thus MSAA needs AF to filter textures to achieve the sum effect of SSAA.

I imagine SSAA + AF would look better than MSAA + AF, but at a much greater penalty in framerate. I think that with SSAA you may be able to achieve the same effect as AF by simply lowering the LOD, as SSAA's full-screen filtering will help combat the lowered-LOD's consequent shimmering.

At least, that's what I think. I'm no expert, so it's best to wait for the paid professionals to set the record straight.
 
Well, SSAA actually performs a sort of AF on textures. You don't really need AF with SSAA. MSAA + AF are a more efficient and specialized way of achieving the basic effect of SSAA.
That is absolutely not true. The result of SSAA is more like a LOD bias adjustment. Anisotropic filtering is nowhere comparable with LOD bias adjustments in any way.
[/quote]
 
sonix666 said:
Well, SSAA actually performs a sort of AF on textures. You don't really need AF with SSAA. MSAA + AF are a more efficient and specialized way of achieving the basic effect of SSAA.
That is absolutely not true. The result of SSAA is more like a LOD bias adjustment. Anisotropic filtering is nowhere comparable with LOD bias adjustments in any way.

No, you're wrong.

Actually the improvements in apparent texture quality achieved when performing SSAA are actually superior to the improvements achieved when using the equivalent level of anisotropic texture filter, since it is the overall results of the whole pixel shading operation that are being supersampled and then post-filtered in screen space. This gives much better results for operations like bump-mapping than are achievable just with an anisotropic texture filter.

You do still need AF even when performing SSAA currently, since to achieve the equivalent of a 16x anisotropic texture filter would require a prohibitive level of supersampling for real-time rendering.
 
I've found that SSAA simply smooths out aliasing on textures, while AF ensures a high level of detail. When the Serious Sam 2 demo first came out, it was a mess of texture aliasing, resulting in almost every surface shimmering quite irritatingly. Turn on 4x FSAA (SSAA) on the Radeon 8500 and aliasing was totally ellimitated, making the game look really quite good. (Unfortunately, performance was killed, too. . .)
 
I think the question that needs to be asked is "what is AA?"

With that, I'd have to say that the answer to the topic's question is "Yes, it is wrong to say so."
 
andypski said:
You do still need AF even when performing SSAA currently, since to achieve the equivalent of a 16x anisotropic texture filter would require a prohibitive level of supersampling for real-time rendering.

More than 16x SSAA? I've seen stochastic AA images rendered with and without AF using 16 R200 cores and you can easily see the difference.
 
Well, I would think that to achieve an anisotropy factor equivalent to 16X you need 16 extra samples in both H & V directions... i.e. 256X SSAA...
 
Fred da Roza said:
More than 16x SSAA? I've seen stochastic AA images rendered with and without AF using 16 R200 cores and you can easily see the difference.
The thing is that SSAA only removes aliasing. It can't do anything to increase the level of detail of textures at further distances.
 
It can because when SSAA is on the mipmap LOD should really be given a relative negative bais to compensate.

This is something the 8500 hasn't done properly since the start of the 6xxx/9xxx drivers up till cat 3.2 (which was the last i had it on, but ive not read anything in the release notes for fixes), for some odd reason it actually reduces the texture detail in some situations (6xAA is a good example)
 
The more filtering you do, the less texture aliasing you have. So, yes, I think that AF is a sort of AA for textures.

It's also why AF is more important with MSAA that with SSAA. (of course it doesn't mean that AF is not usefull with SSAA)
 
kyleb said:
also, ssaa doesn't really do anything for mipmap transitions.

nor does AF, they both will jsut push the mip transitions back (assuming mip lod is set correctly for SSAA)
 
Reverend said:
I think the question that needs to be asked is "what is AA?"

With that, I'd have to say that the answer to the topic's question is "Yes, it is wrong to say so."

I would say exactly the opposite.

Anisotropic filtering is certainly a form of antialiasing--it removes texture aliasing that would occur if you weren't using AF. (Or rather, AF allows you to use a more detailed LOD for textures mapped onto objects at an oblique angle to the screen than you otherwise could without getting texture aliasing. Indeed, the whole "tunnel test" for AF doesn't show AF directly but rather the LOD adjustment it allows.)

Similarly, motion blur is a form of antialiasing, albeit temporal rather than spatial. Antialiasing methods used in audio processing are still antialiasing. And so on.

The problem here, of course, is a semantic one. And it has arisen because, as far as the non-technical audience for articles on realtime consumer graphics is concerned, "antialiasing" has basically been redefined to mean "edge antialiasing", or at least to only refer to spatial antialiasing in pixel space. So if we take that (conceptually stupid but somewhat useful) definition, then AF is not antialiasing.

But if we take the more sensible definition that antialiasing refers to any technique that prevents aliasing, then AF certainly merits the term.
 
AFAIK aliasing includes things like pixel popping along with jaggies among other things which I have forgotten. :D

Aliasing is a distortion caused by a system limitation, is it not?
I should say frequencies become distort and hence you have jaggies, pixel popping in graphics but in terms of sound you have ugly sound. :D

Right, wrong?
 
Bambers said:
kyleb said:
also, ssaa doesn't really do anything for mipmap transitions.

nor does AF, they both will jsut push the mip transitions back (assuming mip lod is set correctly for SSAA)

anisotropic filtering is not pushing your mipmap transitions back but it blend the mipmap transitions over a larger area. on the other hand ssaa would do noting to reduce the viability of mipmap transitions.
 
K.I.L.E.R said:
Aliasing is a distortion caused by a system limitation, is it not?
I should say frequencies become distort and hence you have jaggies, pixel popping in graphics but in terms of sound you have ugly sound. :D

Right, wrong?

Aliasing happens when you undersample.
Since reality is continuous, sampling it at discrate places will always result in aliasing.

Aliasing is the conversion of high-frequency information, converting down into a low-frequency. For example with sounds if you sample at 44kHz, it can represent frequencies between 0 - 22kHz properly. However if you have a 30kHz input signal it will mirror down to a 14kHz signal, and after sampling you will no longer able to tell if it was a 14kHz input signal or it's just the effect of aliasing.

Analog antialiasing needs filter circuitry that cuts the high frequency signal. Like with 44kHz sampling you have to cut out everything abouve 22kHz.

Digital antialiasing samples at higher frequency, and then implements a filter to cuts higher frequencies, then downsample to the desired rate.

For 3D rendering SSAA provides the theoretically best quality - unfortunately it is slow.
Mipmapping is an AA techinique (!), and by the previous definition (take more samples and filter down) so is AF.
 
kyleb said:
anisotropic filtering is not pushing your mipmap transitions back but it blend the mipmap transitions over a larger area.

Wrong.
AF takes more samples from the texture allowing to use higher resolution mip levels without aliasing.
So it does push the transitions back depending of the degree of anisotropy.

on the other hand ssaa would do noting to reduce the viability of mipmap transitions.

Wrong again.
SSAA takes more samples from the texture allowing to use higher resolution mip levels without aliasing.
So it does push the transitions back depending of the number of samples taken.
 
Just to add a bit to Hyp-X's excellent posts (I'd tried a couple times to cover the same ground he did, but couldn't quite manage to come up with something concise, correct, and understandable to someone with no prior knowledge of aliasing/signal theory):

SSAA is a brute-force technique for spatial antialiasing. It works by oversampling color data in screen space, and then blending and downsampling the results. The upside is that it addresses all aspects of spatial aliasing, as opposed to MSAA (which just handles edge aliasing) and AF (which just handles aliasing in color textures, and then only depending on the degree of anisotropy (i.e. the angle to the screen)). As andypski pointed out, this is superior to MSAA + AF because it antialiases the results of pixel shaders, whether programmable or fixed-function techniques like bump-mapping. As some others have pointed out, it's also superior to MSAA + AF because it allows for greater detail in all textures, not just those at high degrees of anisotropy. Finally, SSAA is superior to MSAA + AF in terms of generating proper color values at edges, because the color samples are calculated to sub-pixel precision, rather than taken from the center of the pixel (centroid sampling is a technique to avoid many of the artifacts that can result; but if not used carefully it can result in artifacts of its own).

The downside of SSAA is that it is completely brute-force, and thus hideously expensive. SSAA oversamples all parts of the image equally, with no regard for whether they are the parts more or less likely to contribute to aliasing, or, in the case of textures at high degrees of anisotropy, to be extremely blurry because using a more detailed mipmap would result in aliasing. That's generally a pretty crummy way to go about things, and the result is that, for current practical purposes, you're unlikely to get more than 2x or maybe 4x SSAA and still maintain playable framerates. Meanwhile, as Dio pointed out, it would take 256x SSAA to allow the same LOD improvement that 16x AF allows for textures at extreme degrees of anisotropy.

Of course 256x SSAA would allow all sorts of other improvements to the entire image. But in a sense that's exactly the point: 16x AF doesn't change anything except for textures at an angle of >86.42 deg. to the screen (someone correct me if I did the math wrong; I tried to figure it out myself). But it also doesn't incur any extra workload except for those few textures at such a high degree of anisotropy; that's why the performance impact moving from 8x to 16x AF is usually only on the order of ~2-3%. Meanwhile--for those particular textures--the improvement allowed by going from 8x to 16x AF is definitely noticeable. Whereas, going from 64x to 256x SSAA will likely not result in a noticeable IQ improvement for any parts of the screen except those aforementioned surfaces at an angle of >86.42 deg. to the screen; but it will definitely result in a performance hit of ~75%. SSAA is doing a whole lot of work to the entire image, but only a very small portion of that work will actually result in a visible improvement.

Techniques like MSAA and AF aim to achieve most of the visible improvements of SSAA with a much lower cost. MSAA is a clever variation on SSAA that eliminates the fillrate cost, retains the memory footprint cost, allows the bandwidth cost to be efficiently addressed through color compression, and achieves nearly all the edge antialiasing (although none of the texture/shader antialiasing). Techniques like Matrox's fragment AA, or the Z3 technique from academia, explicitly only do antialiasing on identified edges, thus avoiding the workload costs of SSAA (and the memory footprint costs of MSAA).

AF is even more focused: it only addresses texture aliasing for textures at a high degree of anisotropy, and indeed adjusts its workload so that it doesn't do any more than necessary to avoid aliasing at each particular angle, while bringing the detail level for anisotropic textures up to the same level as for isotropic textures (those parallel to the screen), which is to say very roughly on the same level as the detail provided for by the display resolution. The most efficient way to do this is to oversample the texture only in the direction of anisotropy; which is exactly what AF does. The oversampling is done in texture space, not screen space, and by limiting it to one direction and only those portions of the screen where it is actually needed, AF achieves a very important antialiasing function at a very low cost.

So hopefully we've now gotten at all the questions in the original post. AF is indeed a form of antialiasing that only applies to textures: indeed, it only applies to textures depending on their degree of anisotropy. SSAA + AF is better than MSAA + AF because SSAA allows for antialiasing of shader results and improves the LOD for all textures, not just anisotropic ones. SSAA + AF is better than plain SSAA because the levels of SSAA required to achieve good results on the anisotropic blurriness issue are ridiculously high and thus extremely impractical.

And, as Hyp-X hinted at, the solution to the fact that MSAA + AF does not antialias shader results (just as more and more pixels are the result of shaders) is not to switch back to SSAA, but instead to use other, less costly, targeted techniques that can antialias shader results only. In general this means building analytical high-pass filters into the pixel shaders themselves. Ideal results are not always possible, but this is the way it's been done in offline renderers for quite some time, and a number of techniques exist to get decent results at a reasonable cost in workload.
 
Hyp-X sure both teqnices alow you to push the mipmaps back whithout ill effects, but allowing and actuall doing it are two seprate things. regardless, my point is that ssaa does nothing to spred the blending between two mipmap levels over a lager area than standard trininar filtering.

see short transtions between mipmap levels compared to longer transitions between mipmap levels. push them back all you want but the transitions between mipmap will always be more prononced with ssaa and standard filtering compared to that which can be accomplished with af.
 
Back
Top