HIGH DEFINATION GAMING


 

 

 

 

 

 

 

The RADEON™ X800 series of Visual Processing Units incorporate a range of innovative new technologies that bring games into focus. These technologies all center on a new concept called High Definition (HD) Gaming.

The hottest new trend in the consumer electronics industry is High Definition Television (HDTV). With up to seven times the resolution of Standard Definition Television (SDTV), HDTV produces an image so much sharper and clearer that it often feels like looking through a window. It resolves all kinds of small details, like individual blades of grass or the dimples on a golf ball, that could never be made out before. In addition, the HDTV aspect ratio delivers a 33% wider screen than SDTV. On big screen displays, it delivers the closest experience yet to having a movie theater in one’s living room. Much like the transition from black & white to color displays, most people who have seen HDTV in action find it difficult to ever have to go back to their old SDTV sets.

HD Gaming is about capturing this same kind of HDTV experience when playing games on a home PC. It’s about playing in high resolutions with smooth frame rates, and about bringing out more detail and image quality than has ever been possible before. It’s about creating experiences that are so vivid and realistic that you will never want to go back to playing games the old way again. To make HD gaming a reality, the RADEON X800 architecture includes enhanced versions of all the key technologies that its predecessor, the RADEON 9800 series, was renowned for:
SMARTSHADER™ HD
SMOOTHVISION™ HD
HYPER Z™ HD
3Dc™

SMARTSHADER HD

SMARTSHADER HD encompasses the advanced vertex and pixel shading capabilities of the RADEON X800 series. A shader is a small program that runs on the VPU and describes how an image should be rendered. Vertex shaders manipulate the individual polygons that make up 3D objects, and pixel shaders operate on the individual pixels that fill in these polygons to create a visible image. Both types of shaders can be used to create a practically infinite range of visual effects. Shaders can be written using a variety of different programming languages, but the most popular are the high level shading languages known as HLSL (DirectX 9.0) and GLSL (OpenGL). One reason for their popularity is their similarity to the C & C++ languages used to program CPUs, making them relatively easy for developers to understand. Another reason is their ability to abstract the capabilities of different graphics hardware.

The normal process for creating a shader starts with the development of a mathematical algorithm that describes the desired effect, which is then expressed as HLSL or GLSL code. When the code appears to be complete, the developer attempts to compile it to a target level of graphics hardware capabilities. In DirectX 9.0, these targets are called Shader Models. The compiler software will then attempt to fit the effect within the resource constraints of the target hardware. These constraints include things like instruction count, number of constant and temporary registers, and number of textures.

If the compile attempt fails, then the developer must go back and try to modify the code to fit within the resource constraints, or break the shader up into multiple passes. Alternatively, the effect may compile successfully, but when tested it may run much more slowly than expected on the target hardware. This requires examining the low level shader code generated by the compiler and looking for inefficiencies, which can be a time-consuming and frustrating task.

SMARTSHADER HD is designed to minimize the occurrence of the issues described above, thus paving the way for much more complex, detailed, and realistic shader effects in games. It does this by alleviating the resource constraints of earlier shader hardware, and by providing extremely high performance for all types of applications.

Vertex Shaders

SMARTSHADER HD provides much higher vertex shader performance than any previous product. With six vertex processing units each able to handle two shader operations per clock cycle at full bit precision, it can execute well over 700 million vertex shader operations per second. This approximately double the processing capability of the RADEON 9800 PRO. The increased number
vertex processing units also allows more efficient execution of loops, branches and subroutines. Another vertex shader performance enhancement applies to trigonometric operations, specifically sines & cosines. These operations are commonly used to create a variety of different effects,
grass blowing in the wind to waves on the surface of an ocean. SMARTSHADER HD accelerates these effects by executing sine & cosine instructions several times faster than before.

Pixel Shaders

SMARTSHADER HD provides major improvements to pixel shader performance and flexibility of the sixteen distinct pixel shader units can handle as many as five parallel shader operations once. This works out to over 40 billion pixel shader operations per second, or 2.5x more shading power than the RADEON 9800 XT. All operations are processed at full speed with full 24-precision as specified by DirectX 9.0, unlike some competing technologies that require the use reduced precision to achieve peak performance. This characteristic simplifies shader coding ensures outstanding image quality. There are actually three different types of pixel shader instructions. These are vector instructions (also known as color instructions), which operate on three channels simultaneously; scalar instructions (also known as alpha instructions), which operate on a single channel; and texture instructions, which sample and filter textures in a variety of different ways. SMARTSHADER increases number of each type of instruction supported in a single-pass pixel shader by an order magnitude. This effectively removes instruction count restrictions for any real-time application.


Table 1: Pixel Shader Instruction Count Limits

The number of temporary registers accessible to pixel shaders has been increased to 32 (compared with 12 in earlier RADEON products), and a facing register has been added to allow effects that vary depending on whether a surface faces toward or away from the viewer. A key benefit of SMARTSHADER HD is that pixel shader performance is not affected by the number of registers in use, nor is the precision of the stored values an issue. Some competing technologies exhibit rapidly decreasing performance as the number and precision of registers used increases. Since register usage is typically hidden from developers using HLSL, this can often result in inexplicably poor performance, particularly for more complex shaders.

SMARTSHADER HD also offers an improved version of the F-Buffer technology first introduced in the RADEON 9800 series. The name is short for “Fragment Stream FIFO Buffer”, and it is designed to increase the efficiency of multi-pass pixel shaders. Multi-passing is necessary for shaders that exceed the resource limits of the target graphics hardware. The only way to render such effects is to break them up into separate passes, such that no one pass exceeds the resource limits. Pixels are then passed through the entire rendering pipeline multiple times until all the necessary shader operations have been performed.

Unfortunately, this methodology can be slow and inefficient. The process to render a pixel in modern 3D applications is very complex and requires numerous steps, including vertex processing, backface culling, triangle setup, texture sampling, pixel shading, stencil testing, Z testing, anti-aliasing, and more. Repeating all of these steps multiple times per pixel is largely redundant, since the only thing that is changing on each pass is the pixel shader. Additionally, each pass requires the entire image to be read from, and written back to, the frame buffer, even if only a few pixels require multi-passing. Worse still, this technique does not work well with transparent or translucent surfaces, since the foreground and background colors must be blended before writing to the frame buffer, and cannot be stored separately between passes.

The F-buffer technology handles complex effects by passing only the pixels that require multi-passing through the pixel shader engine multiple times, while doing all the other steps in the rendering pipeline just once per pixel. Multi-pass pixels are stored in the F-buffer between passes, rather than writing them out to the frame buffer, so transparent pixels can have foreground and background colors stored separately. This technique saves rendering time, reduces memory bandwidth requirements, and gracefully handles transparency.

One issue with using the F-buffer technique is that it requires a variable amount of storage for each frame, which can make memory management tricky. SMARTSHADER HD deals with this issue by building improved memory management capability into the hardware, rather than leaving this task to the graphics driver. The result is much more efficient support for shaders of unlimited length and complexity.

SMARTSHADER HD Effects Gallery

The following examples describe some of the interesting new shader effects that will be seeing widespread use in upcoming game titles.

Virtual Displacement Mapping

Also known as “parallax mapping”, this effect is actually an enhanced version of normal mapping. It can produce a stunningly real three-dimensional appearance on flat surfaces, without the intensive tessellation computations and extreme polygon counts required for true displacement mapping. In addition to a base texture, it requires a corresponding normal map and height map to work. With SMARTSHADER HD, performance of this technique is similar to that of standard normal mapping.

For an even more realistic effect, Virtual Displacement Mapping can be combined with horizon mapping to capture self-shadowing effects. It also works nicely with 3Dc, which can compress the normal maps and allow more detailed ones to be used.

High Dynamic Range

The integer data formats used in most existing PC games are very limited in the range of different light brightness values they can represent. In the real world, however, our eyes are capable of distinguishing between brightness values that are different by a factor of a million or more. With 8-bit integer data, brightness can values can only range from 0 to 255. This severe compression of dynamic range can cause images to exhibit color banding and appear to be badly over-exposed or under-exposed.

High Dynamic Range (HDR) image formats use floating point data to represent a much wider range of brightness values. SMARTSHADER HD allows manipulation of this data with full 24-bit floating point precision. Pixel shaders can also be used to post-process HDR images and add effects like light blooms that simulate how our eyes respond to bright light.

Image from a Real Time HDR Image Based Lighting demo by Masaki Kawase. Note the glare in the windows and in the reflections on the foreground object, which are achieved using a post-processing shader.

Soft Shadows

Realistic shadows can have a major impact on the apparent quality and realism of a rendered image. Most of the shadow rendering techniques that have been implemented in games so far have been capable of producing only hard-edged shadows. A quick glance around the real world, however, will reveal that most shadows actually have soft edges. A number of techniques to simulate this have been developed, but they required taking multiple samples or using complex shaders that were not practical to use in real-time applications until recently. The performance and flexibility of SMARTSHADER HD finally allows soft shadows to see more widespread use in games.

Complex Reflection and Refraction Effects that simulate how light changes direction when passing through transparent materials like water or glass have been popular in games for a few years now. However, they have so far been limited to relatively simplistic approximations of what happens in the real world. SMARTSHADER HD allows much more complex reflection and refraction effects to be simulated, such as those seen in multi-faceted gemstones.

Subsurface Scattering

Translucent objects present another difficult problem for interactive rendering. Many materials like skin and marble cause light to scatter as it passes through them, giving them a soft glow that varies with thickness. SMARTSHADER HD makes it possible to simulate these scattering effects to produce much more realistic materials at useful frame rates.

A marble figurine rendered using a subsurface scattering effect. Notice how the translucency helps impart a sense of scale to the object.

 

Light Shaft Rendering

The reflection of light off of small particles of dust, smoke, or fog in the air is often used for dramatic effect in movies. Capturing a similar effect in real time games has historically been very difficult to do well. SMARTSHADER HD supports new volumetric rendering techniques that can create a highly convincing representation of this popular effect.


Volumetric Light Shaft Rendering

 

SMOOTHVISION HD

SMOOTHVISION HD represents the latest in image quality enhancement techniques implemented in the RADEON X800 series. Supporting a variety of different settings to meet the needs of any application, it excels at bringing out the fine details in rendered images while removing common artifacts that detract from their quality and realism. Poor detail and image artifacts typically result from a combination of limited display resolution, texture resolution, and polygon count. The three main components of SMOOTHVISION HD technology are improved anti-aliasing, which addresses the display resolution issue; improved anisotropic filtering, which addresses the texture resolution issue; and new 3Dc compression technology, which addresses the polygon count issue.

SMOOTHVISION HD builds on ATI’s original SMOOTHVISION technology, which was the first to provide programmable anti-aliasing modes and high performance anisotropic filtering. The latest version provides massive improvements in anti-aliasing performance, while simultaneously producing superior image quality. It also provides new anisotropic filtering options to provide the sharpest and clearest textures available without sacrificing frame rate. And new 3Dc compression technology brings out new levels of fine surface details while conserving memory and bandwidth.

As with all of the other features in ATI’s new line of Visual Processing Units, SMOOTHVISION HD technology is optimized for High Definition Gaming. It works with any 3D application (Direct3D® and OpenGL®), at any resolution. It can be controlled either through the Display Properties Control Panel in Windows operating systems, or through individual application settings.

Anti-Aliasing

The world around us has an infinite amount of visual detail. No matter how closely you look at something in the real world, you are always able to make out more detail than you could from farther away. Unfortunately, it is impossible in most cases to represent an infinite amount of data in a digital format that computer equipment can understand. This means that any computer-generated image you see is always an approximation of the real thing – a fact that becomes apparent if you try to look too closely at your display. All computer displays are made up of individual pixels, each of which occupy a certain amount of screen space and can only display a single color at any given moment. The color is determined by sampling the image at the center of each pixel. As the resolution of a display is increased, the area of each pixel is decreased. This can improve the level of visual detail in the image, but it increases the number of pixels required to render it, which usually results in reduced performance. Practically all computer monitors today can handle resolutions of at least 1024x768 (for a total of 786,342 pixels), and many can reach 1600x1200 or higher. Ideally the resolution of a display should be high enough at a normal viewing distance that it is impossible to make out individual pixels. Unfortunately, this requires resolutions many times higher (on the order of 6000x4000 pixels at standard viewing distances) than what existing display technology can provide. At lower resolutions, there are not enough samples in the image to display it accurately. This results in a set of image artifacts known as aliasing. Aliasing typically appears as jagged or broken lines in a rendered image. It is particularly apparent on the edges of objects and in areas of fine detail, and when moving creates a shimmering effect that can be extremely distracting.

A triangle exhibiting aliasing artifacts (left) and the same triangle with anti-aliasing applied (right)

Anti-aliasing refers to a set of techniques that reduce or eliminate aliasing artifacts. This is accomplished by sampling the image at multiple points within each pixel during the rendering process. By increasing the effective sample rate, anti-aliasing can provide images that appear to have greater resolution than the display is normally capable of. The trade-off is the performance cost associated with the rendering the increased number of samples. A variety of anti-aliasing techniques have been devised in an attempt to minimize the downside of this trade-off.

Anti-Aliasing Techniques

Anti-Aliasing techniques can be divided into a few general categories. Over-sampling involves rendering an image at high resolution before filtering and scaling it down to the desired display resolution. For example, an image displayed at 1024x768 resolution with 4x over-sampling would actually be rendered at a resolution of 2048x1536 initially, and then scaled back down to 1024x768 before being sent to the display. This method results in a fixed sample pattern that looks like an ordered grid.

A more flexible method is super-sampling (SSAA). This involves rendering multiple copies of the image at its full resolution, each shifted or “jittered” a fraction of a pixel off-center. These copies are then blended together to produce the final image. Super-sampling provides more control over sample locations than over-sampling and can therefore provide superior image quality. However, it still requires many more pixels to be rendered than will actually be visible in the final image, and therefore is costly to implement from a performance perspective.

A different form of anti-aliasing, known as multi-sampling (MSAA), is designed to deliver the same image quality benefits of SSAA with much better performance. Whereas super-sampling involves sampling the color of a pixel at multiple locations, multi-sampling instead samples the Z-buffer or depth buffer at each location to determine how much of each pixel is covered by the polygon currently being drawn. If the pixel is only partially covered by the polygon, its color will be a weighted blend of the triangle color and the background color. Since multi-sampling doesn’t involve rendering multiple copies of an image, it is much faster than super-sampling.

Multi-sample Anti-Aliasing

The two key factors in determining the quality of a given anti-aliasing technique are the number of samples and the sample pattern. Anti-aliasing requires testing the color and/or depth values at multiple locations for each pixel, and the sample pattern controls how these locations are determined. Using a large number of samples with a poor sample pattern may not look any better than using a small number of samples with a good sample pattern.

The simplest sample pattern to implement is an ordered grid. Unfortunately, this doesn’t work too well on edges that are nearly horizontal, nearly vertical, or at 45 degree angles, since it turns out that the human eye is much more sensitive to aliasing artifacts on these types of edges. A better pattern to use is a rotated grid, which sacrifices anti-aliasing quality on angled edges for better quality on the near-horizontal and near-vertical edges that have the greater impact.

Aliasing artifacts on edges at different angles. Note how the nearly vertical and nearly horizontal edges appear to be more jagged than the others.

An ideal sample pattern is one that anti-aliases edges at the widest range of angles. This is best accomplished using a pattern that is not based on a grid at all, which is often referred to as a sparse sample pattern. These patterns are the most difficult to implement, but deliver the best image quality.

 

 

Next: High Definition Gaming (2)

 

 

 

Click here to go to application and install page Click here to go to pcmark2004 page Click here to go to the results page Click here to go to the conclusion page

 
Click here to go to application and install page Click here to go to pcmark2004 page Click here to go to the results page Click here to go to the conclusion page