Graphic Cards AF what it is

Vandal

Skilled
I posted this on another forum copied it here...may help someone who doesn't know about AF.....hope it helps...The guy on the other forum wanted to know a bit about AF..

AF is anisotropic filtering....
Its a technique used to crispen and increase LOD in distant objects and textures particularly...... What AF does is make background objects (and even some closer ones) look better and therefore makes the newer crop of games look visually nicer and therefore more believable.....

For example in Doom 3 with AF off metal grilles on the ceilings (when u can see them that is....the game is so bloody dark!!!).....look sort of disoriented...disjointed etc. because the graphics card is programmed to focus mainly on close range textures...this is a rendering power saving feature based on the human ocular structure and peculiarities. I mean we see closer objects better....and as the LOD increases our ability to notice details reduce....

So graphics cards are programmed to take advantage of this natural phenomena of the human eye....Sometimes however distant objects can look really unrealistic in games....this is where AF can be turned on.....in fact if u have anything above a 6800GT/X800XT u can turn it on in almost all games to get a lot of visual realism @ a small performance hit @ 4AF and larger hits as u move it up......ie 8x, 16x etc.....

Now look @ farcry nice game, nice visuals.... use the binocs that the character has, see some objects which weren't in detail showing up (distant objects shouldn't a prob cause this game has some huge levels)..... now zoom in a bit..... they become better and better as your LOS gets closer to them.....right???... Sort of like your eyes focusing on them..... this is not a natural occurence cause unlike our eyes games cannot adapt to visuals rather it is a AF filter working which is driven by low level subroutines to deliver the sense of zooming in with better detail......

AF also affects certain joints and corners of objects etc. wherein when 2 dissimilar textures join usually there is a slight display anomaly noticed particularly when the viewing distance is greater. AF can remove (or minimise) this by simply using much higher res, higher qual samples of the objects in detail and what you see is a very realistic looking animation......
AF can be used for shadows also.... and is used.....basically to define shadow shapes etc..... It also adds detail to random particle bodies (like grass which can move eg. sway, or leaves any body in a 3d game which has a constant property of linear motion. Non Linear motion is more heavy on the sys resources because of calculations being required becoming very heavy. AF can also work wonders on distant scenes with such non linear locomotive bodies like say water.... 2 examples come to mind half life 2 and farcry....

I am not talking about the wonderful pixel shaders @ work here... they are what give you realism.... just zoom in to the water from a distance and you'll see AF @ work here..... in conjunction with PS.....

The performance hit comes mainly due to the heavier texture load as better samples are used... besides using close high LOD the GPU is now forced to do a far high LOD also....increasing overheads.....CPU bandwidth also becomes a factor in case of AF
AF can be used liberally on cards which have 512 megs of onboard and with cards like the 7800GTX and X1800XT AF can finally be enabled @ modest res with almost no noticable performance hits.....
hope this helps......:)
 
argus_smith said:
gee thannx for the info mate..maybe some info on AA in the same thread would be helpful too

thanks pal.....seriously could have written it better but its evening and I am tired, bizzie day @ office today.....

anyways will edit if needed and will update on AA tomorrow after a good recharging rest...I have some info on my noggin....its waiting to come out but my eyes are closing.....I think some loggy 5.1 and NFS 2 @ my room are in order.......Oh and a nice movie.... and some tandoori for dinner.....
 
i think u guys sud start using Google ..... hehe just kidding

studied these things in computer graphics ......

thanks vandal nice post ..
 
Nice info vandal, it has helped me very well (lazy to search in google for AF 7 AA very long time dunno why), as argus said information on AA will also be very helpful.
 
Saiyan said:
Nice info vandal, it has helped me very well (lazy to search in google for AF 7 AA very long time dunno why), as argus said information on AA will also be very helpful.

tell u what I'll give a nice little 'bhashan' on AA if u guys will decorate me with a sticky....And I could add pixel and vertex shader info also to this one.....

AA I will do as promised yesterday.... but make this un a sticky ...... please........:)
 
LOL Vandal what you wrote doesn't give any technical details of Anisotropic filtering. It has zero info value. Anisotropic = Something that is not square, thats exactly what happens. Typically all cards do some form of mipmapping to avoid texture mapping artifacts. Mipmapping basically replaces the large (say 1024x1024 or 512x512) sampled textures with smaller sized (say 64x64 or 128x128) ones when the object to be texture mapped is far away from the viewer. This is to avoid mapping a large texture to say an object that may occupy 2 or 3 pixels on screen. This is memory intensive as a larger number of images at different resolutions need to be stored, but well memory is cheap :p. Now comes bilinear and trilinear filtering... The object on which a square texture must be mapped could be of any shape. Hence to map it, there will be some areas on the object corresponding to which there is no texture sample. The simple way to fix this is called nearest neighbour interpolation.... i.e copy the texture sample nearest to the required one to the current pixel. However this can lead to blocky artifacts (anyone remember software rendered 3D games like doom, duke3d or quakeworld?). An easier but more expensive way to find the value of the pixel is to average it out across its neighbours. i.e. look at this... (Assume X is the value we need to find)

Code:
P1 P2 P3
P4 X  P5
P6 P7 P8

X = (P1+P2+P3+P4+P5+P6+P7+P8)/8

This is essentially bilinear interpolation. Trilinear extends this averaging to mipmaps... i.e. Find the bilinear value on each mipmap level and average across all the mipmaps. Now the basic issue here is that all of these is isotropic. So at sharp angles, it'd lead to blurring and loss of information. To avoid this, anisotropic filtering tries to take these samples from different pixels other than its immediate neighbours for particular sections of the object. Eg:
Code:
P01 P02 P03 P04 P05 P06 P07
P11 P12 P13 P14 P15 P16 P17
P21 P22 P23  X  P25 P26 P27
P31 P32 P33 P34 P35 P36 P37
P41 P42 P43 P44 P45 P46 P47
P51 P52 P53 P54 P55 P56 P57

Here an anisotropic sample could be
X=(P33+P15)/2 or
X=(P42+P33+P15+P06)/4
In layman's terms, the first corresponds to 2X anisotropic, the second corresponds to 4X anisotropic. (Well note that this is a very simplified view, what happens internally is a lot more complex.) Now things get worse, the selection of samples could be based upon the angle which the surface makes... More samples of very oblique lines and less samples for things straightforward(Hope its not the other way round :p). This is called angle dependent AF and thats what most cards use. There are other things such as Euclidean distance and City block distance. But I won't go into the details of those. PM me if anyone wants to know more.
 
There was a Whole Article on AA and AF in Digit when Doom 3 had just released.

I read and got my full info from that :D.

But anyways, nice info. Chaos.

I didnt really read what vandal wrote. Too long :p.
 
I am using simple language here, no 3D stuff (mostly not anyway)....I think everyone should understand this, if not......holler....;)

AA or anti-aliasing....actually is FSAA or full screen AA......
Unlike AF which mostly benefits visual quality in a 3D game....AA though these days synonomous with games, can benefit other applications as well.
AA as the name suggests is simply removing of aliasing throughout a rendered scene....AA is basically a technique (read - low level subroutine) to utilise the horsepower of todays graphics cards to achieve a visual completely free from artifacting/jaggies or aliasing as we call them...
AA has been available for some time now as a graphics card render only option but past cards could not provide playable frame rates after enabling it. This is because AA is extremely taxing on both the polygon counts, vertex units and the memory of a 3D card.

Now what is a Jaggy (artifact) as they are called..... Well a jaggy (or jaggies because their are a large number of jaggies in every aliased frame) is nothing more than a display anomaly noticable mostly when 2 disimilarly textured bodies meet (2 bodies in a 3D game world that have dissimilar textures/colors/properties).....

For example lets take Max Payne 2 (all 3D games have aliasing just 1 example)......notice any scene in the game say a closed door, or even a gun lying on a table.....lets focus for ease of understanding on example 1 ....... The door has a wooden grain texture, while the wall may be tile, plain etc. Notice now the portion of the scene where joining of these two dissimilar objects, you can notice this with an open door also...... as it depends on the programming used and the concept and not the door physically remaining closed for you to see artifacting.... The edges of the door (where door meets/supposed to meet wall) and the edges and corners of the wall (where wall meets door) will have jagged edges which become more pronounced when light sources are close by and also when you are a bit further as far as viewing distance goes.... These jagged edges seem to have a life of their own and will 'move' as you rotate the character.... well doors and walls in our world weren't designed this way so WTH??

This is a perfect example of AA @ work, and occurs due to 'pixel overlapping' or 'pixel bleeding' as it is called. Simply put the smallest possible element that can have only a single color/texture element is a pixel....now in a complex 3D scene like in today's games its not necessary for each 'door' pixel to end perfectly(exactly the rectangular shape of the door without overlapping).... and 'wall' pixel to also do so.....(like objects in a real world).... Instead these 3D objects being rendered also may have properties of motion (like the door).... now we've seen that a pixel cannot be further divided (being the smallest element of a 3D scene)....so for example if a pixel is positioned such that it is half in level with the door and half in level with the wall......it must take texture and color porperties of any 1 body (object)......SO IT'LL BE A WALL PIXEL OR A DOOR PIXEL, BUT CANNOT BE HALF-HALF...

This is exactly where Aliasing gets its birth as these "stray pixels" or "border pixels" have to be tagged to either wall or door..... This causes the jaggies which seem to move as the characters orientation changes.....and edge surfaces take on a jagged look.

AA basically removes jaggies by various methods (nowadays a combination of these methods is used to make images really look real and 3D scenes lifelike....) Play a game with AF and AA turned on to murder your card ...... and xperience that kick in the pants feeling....
AA can
1. render a scene @ a much higher res in the signal processing stage (background) and present you with an AA scene @ the res (lower) your monitor is set to run at...This is due to the fact that @ higher resolutions say 1600*1200 and above AA gets minimised due to the much larger number of pixels in a scene, so the jaggies caused by overlapping pixels is not noticable.
2. Pixels near the edges of a body are set to an intermediate color according to the colors of the 2 bodies (which border each other)
3. Reduction of the brightness levels between 2 neighboring pixels by using their color properties (or differences in color properties) and applying these to other neighboring pixels..

Sounds very hi-fi I know but in games mostly option 1 is used.... 2 and 3 are used mainly for rendering and designing work..... The only problem here is that 1 is very system heavy as the signal is proocessed @ very high res (say 3-4 times more than what your monitor is using) and then the final output scene is rendered @ whatever res you use....btw off topic but this is where your RAMDAC's come into play (RAM digital - analog converter)....

Thanks for reading.....any comments??
 
Your 1 is supersampling.... And no its not used anymore. It was used when GF2/Radeon 8500 cards were around. All cards these days use multisampling. Your 3 is not a way to antialias, its called a gamma correct blend. Its a post process step after antialiasing.
 
Chaos said:
LOL Vandal what you wrote doesn't give any technical details of Anisotropic filtering. It has zero info value. Anisotropic = Something that is not square, thats exactly what happens. Typically all cards do some form of mipmapping to avoid texture mapping artifacts.

Buddy I wasn't really a sci/math student......but remember some inverse kinematics from those 3D S max classes meself.....;)
Anyway I wasn't showing off (if that's what u thought)..... just putting in lay man's terms what some people ask.....you'd be surprised how many do....
Now u know what AF is, I know too..... suppose someone doesn't..... they may understand what I wrote (90% chance)....but will they understand what u wrote (40% chance)???..... See you learn to walk b4 u run..... I was but introducing the concept and would have gladly gone into the math part of it..... could have also done bilinear and trilinear... but with todays cards... well ..... why walk when u can run......
Anyways thanks for adding to the thread.... and you have some nice info.....You could have penned it (or copy pasted it) doesn't matter cause it helps me....by elaborating in detail what I mentioned as a common/lay man speak....
Cheers...:)

Chaos said:
Your 1 is supersampling.... And no its not used anymore. It was used when GF2/Radeon 8500 cards were around. All cards these days use multisampling. Your 3 is not a way to antialias, its called a gamma correct blend. Its a post process step after antialiasing.

Yes u are correct here.........
3 is (again correct) a mop and clean up process yup...
Since you know a lot about it (no pun intended whatsoever) I would seriously like to know about TA or temporal antialiasing (introduced in the 7800....) firstly does the X1800 support it??

Once again though I am putting it in a form which will appeal to gamers.... how many guys would really be into this.....I mean if we combine forces could probably write a small book...but would it sell???? ;)

Secondly I know what it is (temporal AA..... AA on non solid bodies....(chain link fences example given a million times).... but its used for water also.... right.??
Now how does TA work.....?? It will be much heavier than normal multisampled AA because MSAA will be used in the background right??
I am really interested in TAA....any pearls of wisdom would be appreciated and accepted gratefully....
 
^^Well the answer to that is simple... It works on texture space instead of image space like normal AA. In a way its heavier since it needs to be done for each and every single transparent texture in the scene. So more the number of independent transparent textures to be sampled, higher is the hit. ATI cards since 9700 pro support texture antialiasing with 5.9 or higher drivers, but the performance hit is huge.
 
Chaos said:
^^Well the answer to that is simple... It works on texture space instead of image space like normal AA. In a way its heavier since it needs to be done for each and every single transparent texture in the scene. So more the number of independent transparent textures to be sampled, higher is the hit. ATI cards since 9700 pro support texture antialiasing with 5.9 or higher drivers, but the performance hit is huge.

Yes but does it work on fluid bodies as well?? For example waves, water, moving clouds etc......Another thing again way....way off base.....Nforce 4 SLI boards can run ATI cards in crossfire right???
 
Isn't Temporal AA supposed to be LESS demanding than conventional FSAA? For instance, 2x TAA would visually be equivalent to using 4x FSAA while the performance hit would only be that of 2x FSAA.

@Chaos: Supersample AA is very much around. Correct me if I'm wrong, but isn't ATi's Adaptive AA = SSAA?
 
Last edited by a moderator:
tracerbullet said:
Isn't Temporal AA supposed to be LESS demanding than conventional FSAA? For instance, 2x TAA would visually be equivalent to using 4x FSAA while the performance hit would only be that of 2x FSAA.

@Chaos: Supersample AA is very much around. Correct me if I'm wrong, but isn't ATi's Adaptive AA = SSAA?

Coming to TAA is heavier not by iteself but because you'd have to enable it alongwith one of the other options (SS or MS) because they by default will not work with transparent bodies....

coming to the SS in the graveyard debate - hee hee........yes tracer you're right... in fact super sampling cannot be completely done away with, as many other sample models are derived from it....

in fact multi sampling was designed as a faster alternative to SS wasn't it... ;)
 
Last edited by a moderator:
tracerbullet said:
Isn't Temporal AA supposed to be LESS demanding than conventional FSAA? For instance, 2x TAA would visually be equivalent to using 4x FSAA while the performance hit would only be that of 2x FSAA.

@Chaos: Supersample AA is very much around. Correct me if I'm wrong, but isn't ATi's Adaptive AA = SSAA?
I'm talking about transparency AA not Temporal. Temporal is a different thing altogether. TAA is basically changing the MSAA sampling positions between two or threee states every alternate frame which simulates a higher AA level. Adaptive AA works on texture space.... it could do either multisampling or supersampling of textures. Depends upon the driver. Supersampling of the frame buffer is hardly used these days other than the extremely slow 8xS and higher modes of nvidia. ATI doesn't have a single supersampling mode. Also all I've talked about refers to Fullscreen AA. Line antialiasing uses completely different methods.
 
Last edited by a moderator:
Chaos said:
I'm talking about transparency AA not Temporal. Temporal is a different thing altogether. TAA is basically changing the MSAA sampling positions between two or threee states every alternate frame which simulates a higher AA level. Adaptive AA works on texture space.... it could do either multisampling or supersampling of textures. Depends upon the driver. Supersampling of the frame buffer is hardly used these days other than the extremely slow 8xS and higher modes of nvidia. ATI doesn't have a single supersampling mode. Also all I've talked about refers to Fullscreen AA. Line antialiasing uses completely different methods.

Buddy but transparency AA is based on the SS AA method is nothing more than applying AA on bodies that normally don't get AA'ed during the rendering pass.... aka thin bodies and transparent bodies....

Temporal on the other hand enhances a few frames every scene (so its actually adding some virtual AA to a scene but @ a less performance hit right????)

Just for the record what was the 4Q (quincuix) have I spelled it right??? Nvidia GF3 or GF4 started this as an AA option on the drivers @ that time?? I know its not a seperate method of AA, just an Nvidia adaptation...but of which AA sample set??
 
Back
Top