The  "effects": glossary 
 

  • Anti-Aliasing 
  • Explaining this completly would mean explaining the whole mathematical sampling theory. It boils down to this. To recover a signal , or image, you need a minimum of samples to be able to give a realistic representation of the image. The problems start with texture maps being either too close or too far away from the viewpoint. If the polygon is far away you only have a limited number of points to show the texture map, so logically you have to drop a lot of the real pixels of your texture map. This creates some sort of interlace effect : one line is shown and one is not. This can result in weird patterns appearing, and makes the texture map look completly different from the real one. A similar problem if the polygon is close to you. You need more info than there is resulting in the generation of random noise (meaningless values). Most of the time the last problem is solved by MIP-Mapping while the other is solved by the anti-aliasing. 

    Another point where anti-aliasing is used is with stright lines. If you draw a stright line (under an angle) using a paint program and you zoom in, you will discover that the line looks like a stairway. To remove this and make the line look like a line points in different colors are added to the side of the line to make it look more like a real line. Most of the time it is this kind of Anti-Aliasing they are talking about. 

  • Alpha-blending 
  • Is a technique to do transparency. It is an extra value added to the pixels of a texture map to define how easy it is to look through the pixel. This way it is possible to look trhrough things and effects like realistic water and glass are possible. Usually there a different levels available and some form of blurring is used to make the whole look realistic. 

  • Atmospheric effects 
  • Actually refers to 2 other effects that form an atmosperic effect when they are combined : Fogging and Depth Cueing. 

  • Bilinear filtering 
  • See Filtering 

  • Depth Cueing 
  • Changes the color and hue of an object in accordance with the object's distance from the viewer. Most realistic effects are obtained when using an exponential curve to determine the color and hue. 

  • Fogging 
  • Creates a fog like effect by placing a haze over the scene. Is used to make object appear slowly to avoid the sudden appearance of objects. 

  • HAL: Hardware Abstraction Layer. A component of an API which repesents the functions of a particular system's hardware which are useful to the API.
  • Point-Sampled Filtering 
  • See Filtering. 

  • MIP mapping 
  • Technique to make object look more detailed when coming closer to them. This is realised by defining multiple texture maps : very detailed ones used when the object is close and less detailed ones used when the object is further away. This helps to avoid the blocky effect. Is based on the real world when you get closer to something you see more detail when it is far away you see very little detail. Usually they talk about MIP-levels, this refers to a certain quality texture map. Usually 3 levels are used. 

  • Perspective-correct texture mapping 
  • Function that removes the distortion that appears when a texture map is applied to a polygon in space. Lines must go throug one point at infinity and this also goes up for texture maps. This function adjusts the texture maps so that they look real. 

  • Subpixel-positioning (-correction) 
  • There is a limited number of pixels available on the screen, if a line doesn't run through a real pixel, it must be moved to the nearest one, this introduces a positional error. This technique will break up pixels into smaller subpixels in memory so that the line can be drawn to the nearest subpixel. 

  • Texture Memory
  • Part of the memory that is used to store the texture maps. Usually a seperate block of memory (seperated from the Frame and Z-buffer). There is 2Mb on most cards while the powerVR based cards have 4Mb. Texture maps can be stored in different formats : color depth, size (32x32 up to 256x256 pixels). The pixels of a texture map are usually refered to as Texels. The more Texture Memory your card has the more different texture maps can be used in a scene. This allows more MIP-levels or more different ones to avoid repetion of the same texture maps over and over, gives more variation and more realism to the scene. Some software companies are complaining that 2Mb of texture ram is not enough. The general rule is the more the better but watch our for bandwidth problems... 

  • Frame Buffer 
  • Part of the memory that is used to store the actual calculated frame. The frame buffer usually stores 2 frames : one is being calculated by the 3D accelerator while the other one is being send to the monitor, this is called double buffering and delivers smooth animation. For 640x480 resolution with 16 bits color we require 640x480x16x2 = 9830400 bits of memory or about 1.2 Mb of Frame Buffer memory. For 800x600x16b we need 1.8 Mb. For 1024x768x16b we need about 3Mb each value is for 2 frames. Voodoo cards are equiped with 2Mb for the Frame and Z-buffer. It is very clear that no resolutions higher than 800x600 are possible. If you want the Z-buffer you are limited to 640x480. PowerVR uses the Memory of your existing graphics card for Frame Buffering. 

  • Z-Buffer 
  • Part of the memory where the depth value of pixel is stored, this allows the card to determine whether a pixel is visible or not. It is just a 16bit number that represents the Z-value (depth). High values are far away while small ones are close to you. You need 640x480x16= 4915200 bits at a resolution of 640x480 with a Z-buffer size of 16bits. It is eauivalent to adding one extra frame to the framebuffer for Voodoo Cards. It is trivial that at a resolution of 800x600 the Voodoo based cards can not use a Z-buffer because they only have 2Mb for frame- and Z-buffering. They would need 800x600x16x3bits or 2.7Mb.No problems with 640x480 : 1.8Mb required. PowerVR uses a different technique called Hidden Surface Removal to determine whether a pixel is visible or not, they do not need any memory for this process. 

  • Filtering 
  • There are 3 methods of filtering :  

    • Point Sampled filtering
    • Bi-linear filtering
    • Tri-linear filtering
    Filtering is a method to determine the color of a pixel based on texture maps. When you get very close to a polygon the texture map hasn't got enough info to determine the real color of each pixel on the screen. The 3 methods describe ways of determining the color of these pixels. The basic idea is interpolation, this is a technique of using information of the real pixels surrounding the unknown pixel to determine its color based on mathematical averages. 

    Point filtering will just copy the color of the nearest real pixel, so it will actually enlarge the real pixel. This creates a blocky effect and when moving this blocks can change color quickly creating weird visual effects. This technique is always used in software 3D engines because it requires very little calculation power. 

    Bi-Linear filtering uses four adjacent texels (real info) to interpolate the output pixel value (unknown). This results in a smoother textured polygon as the interpolation filters down the blockiness associated with point sampling. The disadvantage of bilinear texturing is that it results in a fourfold increase in texture memory bandwidth. 

    Advanced filtering forms can combine this techniques with MIP-mapping. You can do point-sampling between 2 Miplevels. You can also de bi-linear filtering in one Mip-level and combine this with the info obtained from point-sampling another Miplevel. These are techniques that aren't used very often but they exist. 

    Tri-Linear filtering will combine Bi-linear filtering in 2 Mip levels. This however results in 8 texels being needed so memory bandwidth is multiplied by 2. This usually means that the memory will suffer serious bandwidth problems so Tri-Linear filtering is almost never used. It will however create the best looking images at a serious price. 

    In general the best way to describe filtering is blurring. The whole image will start to look blurred and unsharp, this is normal becaues you are doing interpolation after all. This sometimes gives the whole thing a rather vage look that is not always wanted. A good example of this are the monsters in Quake. When you get close they will look rather blurred and unrealistic. Filtering is OK for texture maps that are vague, but it completly detroys texture maps that use very strict differences of color. Like a chess-board pattern this has very strict changes from whit to black in one go, when using interpolation the whole thing will end up looking gray wich is not what you want. Texture maps that represent vague things like roads, floors and walls are ideal for filtering but texture maps that represent strict color diffences are not ideal for filtering (ex. face of a monster in Quake). PowerVR uses adaptive bi-linear filtering this allows the lvele of filtering to change with the distance, you want to do a lot of filtering when you are between MIP levels but you do not want to use filtering when you are close to a real MipLevel. Adaptive filtering gives better results than plain Bi-linear filtering. 

  • Real time shadows and light volumes on complex objects 
  • The advanced algorithm used by the PowerVR is partly based on search the intersecting line of 2 planes. To do realtime shadows you let infinit planes tart from you light source and you let the go around the object casting its shadow. The intersecting lines between the surrounding objects (surfaces) and the planes commig from the light source will determine the Real shadow casted by that object. Light Volumes are similar but instead of casting a shadow you do an inversion and you are casting light. 

    The other chipsets are incapable of doing hardware shadows and have to use a software equivalent, this means that it will be slower and much less realistic. Usually those software shadows are staic and do not move with the light source, they always fall stright under the object. Recreating the same realism as with the powerVR is possible but would require too much time of the main processor to be used. 

  • Busmastering 
  • Busmastering is an expansion of the PCI-bus develloped by INTEL. It allows 2 PCI-bus-peripherals to talk to each other without interupting the main processor. This allows speedy communication between the 2cards and doesn't slow the main processor down. Speeds go upto 100Mbps in laboratory setups and upto around 60Mbps for real motherboards. This technique is used by the PowerVR to send the pixels that are calculated to the existing graphics card which does the frame buffering and will transfer the image to the monitor. The 60Mbps is more than enough, in general there is 15% left of the 60Mbps. There is NO loss in quality. 

  • Loopback Cable 
  • This is the technique used by the Voodoo cards to put images on the screen of the monitor. There is the "loopback cable" that goes from your existing 2D card to the Voodoo based card, from there your old cable goes to the monitor. For 2D operation you still use your old 2D card the info has to move through the poorly shielded loopback cable to the Voodoo and than to the monitor. This results in quality loss (noise picked up by the loopback cable). When you turn on 3D acceleraion the Voodoo card disconnects (using relais or FET-switches) your 2D cards sighnal and start broadcasting. These switches are again a big source of noise. This noise will result in unsharp high resolution images when using your 2D card. It is visble with resolutions of 1024x768 and higher. 

  • Lensflares 
  • Nice visual effect, simulating the patterns appearing when the sun or a light sources hits the lens of a camera. Supported in the hardware by the PowerVR cards and easely done in software for the other cards. 

  • Texture compositing, morphing, animation 
  • Visual effect based on using different texture maps for the same polygon. All are based on placing time dependent texture maps on the polygon. Usually used for displaying movies on roadsigns. Supported in the hardware by Voodoo. Easy to do in the software for the other cards. 

  • Gouraud shading 
  • Technique used to make surface look rounder by applying shadows. The algorithm determines colors for the corners (based on distance to the light source) of the polygon and makes a smooth transition between these points to make the whole thing look rounder. Enhanced by placing an offset-highligh wich means a bright spot (reflection of the light source) is placed on the surface. There are better algorithms : Phong and Metal Shading but both require at this moment to much calculation power to be used in realtime. 



    If you have any questions please e-mail me