Multisample Buffer
SuperScene antialiasing defines a new OpenGL buffer type - the multisample buffer. The multisample buffer is the same size as the screen and contains multisample pixels just as the image buffer contains image pixels. While there may be a front, back, right, and left image buffer, there is only one multisample buffer.
Multisample Pixel
Each multisample pixel is effectively divided into a 16 by 16 grid from which 2, 4, 8, or 16 samples are taken. Each sample taken has a location as well as a color, depth, and stencil value. When an OpenGL primitive covers a sample, a depth and stencil value is computed using the position of the sample. The sample is conditionally updated with new color, depth, and stencil values depending on the depth and stencil operations. This allows the intersection of primitives to be handled at the sub-pixel level, providing improved edge blending.
The position of a sample taken within the multisample pixel is called the sample location. The sample location for each sample depends on the number of samples and the x and y location of the multisample pixel relative to the origin of the window. The sample locations are varied from multisample pixel to multisample pixel using a pseudo-random noise generator. This creates an apparent increase to the number of samples per multisampled pixel, much as the way color dithering is used to generate an apparent increase to the number of possible displayable colors. Varying sample locations from pixel to pixel also eliminate distracting moiré patterns that could be generated if the same sample locations were used for all multisample pixels.
Dynamic Sample Allocation
Dynamic Sample Allocation - which only allocates the number of memory 'slots' necessary to accurately cover each pixel - assures that the minimum amount of memory is used to perform SuperScene antialiasing while generating the highest image quality. In typical multisample implementations, 16 samples per pixel implies that 16 times the amount of frame buffer memory is required - greatly increasing the cost of the graphics system. Due to this fact, competing multisample implementations - available only on UNIX workstations costing over $100,000 - offer only 4 or 8 samples per pixel. SuperScene antialiasing overcomes this problem by dynamically allocating memory 'slots' for multisample pixels only when they are needed. In most scenes, the majority of the multisample pixels are covered by only one or two primitives with few multisample pixels being covered by three or more primitives. By dynamically allocating sample 'slots', a multisample buffer that is only three to four times the size of the frame buffer is required to render most scenes using 16 samples. This allows Wildcats SuperScene antialiasing to deliver high-performance multisampled antialiasing at significantly lower cost while delivering a higher image quality than competing systems.