Before moving on, let's take a brief look at the major features that NVIDIA has brought to the table thus far since the release of the GeForce256 in October of 1999. This section is for those readers who may not be familiar with the GeForce or those who need to brush up. Many of our visitors already know this material, so feel free to continue to the next page.
An excellent tool end users can install on their systems to view many of these features is NVIDIA's nVResults browser. I will be relying extensively on the nV Results browser in this preview for illustrations which will be supplemented with examples from games that actually make use of these advanced features.
The graphics processing unit in the GeForce256 debuted with real-time hardware assisted acceleration for transformations. The purpose of transformation is the ability to change the properties of objects in 3D coordinate space such as size, perspective, and rotation.
Vertex Data
More specifically, acceleration is done on vertex data which is a point, an endpoint of an edge, or a corner of a polygon where two edges meet.
Vertices ultimately define geometric objects and contain information such as positional coordinates, colors, and texture coordinates.
Morphing Dolphin Wirefame Mode
As the position of dynamic objects change, transformations are performed on a per vertex basis. The benefits of a dedicated GPU to process transformations are apparent when you consider that transformation in a 3D game is a much more complicated process than what has been presented here.
The fixed function transform and lighting unit of the GeForce provides hardware acceleration of up to eight lights. Developers can use a variety of special lighting effects such as a spotlight, point light, and directional lighting. In terms of performance, a directional light is fast while the spotlight is the most expensive light to calculate.
Based on the testing we've conducted on the series of GeForce chipsets, the performance of real-time lighting has been increasing. However, after using more than two light sources, which happen to be the most important, performance in complex scenes begins to degrade quickly.
Multiple Point Lights
To further subdivide lighting in 3D graphics, diffuse and specular lighting can be used to simplify modeling the physics of light. Diffused lighting occurs when light hits an object and scatters in all directions equally and does not depend on the position of the viewer. Specular lighting depends on the position of the viewer and also factors in the direction of light.
MDK2 by Bioware
Bioware's MDK2 is an excellent example of using OpenGL's lighting for dynamic lights. Since OpenGL handles the work, NVIDIA's Detonator driver directs the lighting to be accelerated by the graphics processing unit on the GeForce as opposed to the central processing unit.
The GeForce supports real-time reflections and certain specular lighting effects via cube environment. Cube environment mapping captures reflections through the use of a cube map shape which consists of 6 projected faces that surround an object. Reflection models can be created without having to be updated when the viewpoint moves.
Cube Map Reflection
If the developer requires to capture motion or changes in suppounding maps, the hardware acceleration of the GeForce will update the map per frame as needed.
Colin McRae Rally 2.0 by Codemasters
Colin McRea Rally 2.0 supports reflections via cube mapping as can be seen by the image of the tree reflected in the rear windshield.
NVIDIA's Shading Rasterizer is a second hardware processor that was integrated in the GeForce core and brings with it a technology to render real-time per-pixel lighting. The shading rasterizer can perform seven pixel operations in a single pass in each of the GeForce pixel pipelines.
Bumpmapping with Directional Light
By encoding surface patterns in texture maps, bumpmapping simulates surface lighting without requiring additional geometry. By combining lighting techniques with per-pixel bumpmapping, scenes can be generated without using additional polygons or texture maps.
Giants by Planet Moon
Giants: Citizen Kabuto makes extensive use of bumpmapping. Not only is the landscape highly detailed, but the real-time lighting is done via DOT3 product bumpmapping as well. Another game that uses bumpmapping is Evolva by Computer Artworks.
A feature that was implemented in the Detonator 5.x driver set was support for texture compression (S3TC) and all Direct3D compressed texture formats. An application using texture compression can significantly decrease the amount of texture data being sent across the graphics sub-system which provides increased performance. By encoding texture data and using a lookup table during decoding, texture compression can represent a texture map with fewer bytes of data.
Unreal Tournament by Epic
Texture compression can noticeably enhance the quality of games by providing high resolution textures such as those offered in Unreal Tournament. The greater the texture resolution, the more lifelike the game environment appears.
The last feature we look at is full scene antialising which GeForce owners got for free. Using a technique referred to as supersampling, the intial release of the Detonator 3 drivers used Ordered Grid Super Sampling (OGSS) to implement FSAA. With supersampling, each pixel is divided into subpixels. By means of averaging, a color is calculated for each subpixel and a final color of the pixel determined. The more subpixels there are in each pixel, the greater the level of antialiasing.
Microsoft Flight Simulator - No FSAA
FSAA is very effective at removing the jagged edges of objects and is very popular with fans of racing a flight simulation games. While FSAA provides a noticeable difference in image quality (as the image below), the hit in performance can be significant.
Microsoft Flight Simulator - FSAA
Supersampling creates a virtual image at a higher resolution than the rendered resolution and averages it down to the display resolution. For example, when a 2x2 subpixel mask is used at a resolution of 640x480, the image is rendererd internally at 1280x960 which requires four times more memory.
Next Page: Introducing The GeForce3