Graphical Features - The Must Have Eye Candy
Ever look at your old. 3D games? Since they're old, chances are you'll see a lot of blockiness. Blockiness in shape usually results from using too low polygons, while blockiness in texture results from too low texture detail / resolution. This is normal, since these games are built with the graphics card available at the time in mind. Newer graphics card are more capable (and a whole lot faster), so you can either run low detail objects / texture very fast, or high detail objects / texture fast (enough). Of course, game developers choose the latter for their newer games. Let's see what features are common place in today's games applications.LOD - Level of Detail
High detail objects and texture take up space in your graphics card memory, but what's even more important, they eat up bandwidth. Instead of using them all the time, games and applications will use several versions of the same objects, ranging from very high, high to low (hence the term level of detail). The game or application will decide which one to use depending on how far they are - high detail when the objects are near and low detail when they're far. Needless to say, this method uses bandwidth effectively since low detail objects and texture don't take up much bandwidth, cover most of your view and are not generally focused at. More of the available bandwidth can be used to display objects and textures that are much nearer, where it really counts.Texture Filtering
Just like a 2D image, a texture will look best if they are displayed in their standard resolution, for example, a 512 x 512 texture will occupy 512 x 512 pixels (more than a quarter of your screen in 1024 x 768 resolution). When an object is far away, the image stays the same but take up less screen space. This means a pixel (on your monitor's screen) may actually be comprised of several different texels (texture elements). Vice versa, when the object is very near, a texel may be displayed on several pixels, resulting in blockiness. To minimize graphical artifacts, we need to filter the texels. Filtering here means we take a sample of several texels, compute an averaged value and use it to fill each pixel of your screen.There are basically four general methods of filtering: nearest (point sampling), bilinear, trilinear and anisotropic filtering. Point sampling is mostly used in old games using software rendering (with your processor doing all the work). It's the fastest method and put least burden on hardware, but looks really, really ugly! This is because we only use one texel, regardless whether or not it represent what the image should look like on your monitor.
Bilinear filtering was the norm for quite awhile since it's quite fast with first generation consumer 3D accelerators and graphics card. Bilinear filtering uses several texels (usually four) and computes an average to be used. Unfortunately, when used with the LOD technique for textures (otherwise known as MIP-mapping), it produces an artifact that's very visible called MIP-banding. MIP-banding is artifact where we 'see' a clear defined transition line between one MIP level to the next.
Almost all of games nowadays have moved to at least trilinear filtering to counter this artifact. Trilinear filtering still shares the same method with bilinear filtering but uses samples from both the texture from the high and the lower MIP level. By mixing the samples from both MIP levels, we get a smooth transition.
Nowadays, all the latest games are using anisotropic filtering. Anisotropic filtering is still very new for consumer graphics cards. It receives much attention when the Radeon 8500 came out. ATI made some compromises to the Radeon 8500's method of anisotropic filtering. On the Radeon 8500, anisotropic filtering will only work with bilinear filtering, and it won't work with trilinear filtering. This was finally fixed on the Radeon 9700, where we see both anisotropic filtering and trilinear filtering. NVIDIA followed suit with their GeForceFX 5900 line but uses a different method and calculation. On the current generation (GeForce 6 and X700 / X8x0 series), they pretty much have the same method (ATI has some edge though). So, even now, there are some compromises made by both manufacturers to ensure anisotropic filtering doesn't put too much strain on frame rate.
What's the deal anyway? Well, an artifact that's apparent with using trilinear filtering is that as texture gets further away from the camera, it became more blurry and less clear. This happens because trilinear filtering uses a sample pattern assuming the texture is directly facing the camera and doesn't take into account the camera's perspective. We actually need more texel samples if the triangle / polygon is in perspective (anisotropic). Anisotropic filtering uses a modified sample pattern that takes into account the 'shape' of a texture - perspective wise. Obviously this means more samples than bilinear or even trilinear filtering, so it's quite heavy..
Anti-aliasing
When people talk about anti aliasing, the usually refer to the process needed to remove jaggies or staircase effect that's visible on lines in 3D graphics. If you look at old, 3D games 3 to 5 years ago, you probably see that besides blockiness, you can also see that the outline of the objects is not smooth. They're even more obvious if you move the camera, either sideways or forward and backwards. This artifact - aliasing - happens because your screen is made up of square pixels and if the lines drawn are slanted / sloped, the computer must decide which pixels around the line is drawn. If you're using too low resolution, the pixels are quite big so the line 'jumped' from pixel to pixel. Using higher resolution will lessen this effect, but anti aliasing does it better (and smoother) to the point you don't notice it anymore.In most cases, anti aliasing works in a way that for every pixel drawn on your screen, your graphics hardware must decide which pixels are filled to eliminate aliasing artifacts (the pixel 'jump'). This means using more samples - just like filtering. The hardware can render more sample pixels then calculates a single, final pixel or they can just sample parts of the pixel. The first method are generally called super sampling which is very heavy since basically your graphics card must render the same image with twice or more resolution. The second method, which is widely used today is called multi sampling and is a lot more lighter than super sampling. Sample amount can range from 2 samples to 6 or even 8 samples. Of course, the more the sample the better the image and also the heavier for your graphics card. For the most part, 4 sample anti-aliasing (4x FSAA) is good enough and fast enough on current hardware. If you're very picky about image quality, you can either up the number of samples or the resolution or both, but there would be a performance penalty.
The number of samples is not the only determining factor in image quality. The sample pattern is also important. If the pattern is still shaped much in a square like array, some pixels may still look 'jagged'. This pattern sample is called ordered grid. A much better sample pattern would be to slightly tilt the pattern, greatly improving image quality. This pattern sample is called rotated grid or jittered. Current consumer 3D graphics hardware such as NVIDIA's GeForce 6 and ATI's X series uses the rotated grid when anti aliasing, but older hardware such as the GeForceFX series uses an ordered grid. ATI have been using rotated grid anti-aliasing since the Radeon 9700.
[Previous Page]
[Go to top]
[Home]