ATI Rage128 and Rage128 Pro 3D Programming
3D Programming
|
|
|
The Rage 128 family has been designed to generate high quality 3D images while maintaining the highest possible performance. The quality of the images are a result of using advanced features such as 32-bit per pixel (bpp) draw buffers and z-buffers, a comprehensive dual texturing engine, robust alpha blending options, z-based fog, a separate specular interpolator for specular highlights and subpixel accuracy. The ATI Rage 128 and Rage 128 Pro's impressive performance numbers are achieved by the high concurrency they maintain in the parallel system consisting of the chip, the CPU, and the memories they access. See Designing for Rage 128 and Rage 128 Pro for tips on maintaining high levels of concurrency.
|
3D Pixel Pipeline
Every pixel that is drawn on the screen passes through
the Rage128
and Rage128 Pro 3D Pixel Pipeline. An intimate understanding
of the 3D pixel pipeline is central to getting the most
out of any 3D graphics accelerator. This is the focal
point of the Rage 128 and Rage 128 Pro SDK.
|
- OpenGL® Extensions
The Rage 128 and and Rage 128 Pro support a variety
of OpenGL® extensions on Windows and MacOS. Supported
extensions including the following:
-
|
D3DMulTex and OGLMulTex
D3DMulTex
and OGLMulTex
are interactive illustrations for learning about multitexturing
in Direct3D and OpenGL®. The MulTex utilities are designed
to help 3D application developers understand texture support
provided Direct3D and the ARB_multitexture
and EXT_texture_env_combine
extensions in OpenGL®. Due to their extreme flexibility,
the models used to control texture mapping operations
- particularly when texture mapping from multiple textures
- can initially appear complex and conf
using. D3DMulTex and OGLMulTex graphically display the abstracted texture blending units and texture environments in order to allow developers to experiment with the units' functionality and see rendered results interactively. With D3DMulTex, which simulates its results, the user can also "probe" the texture blending units at various stages to see intermediate results.
MulTex for Direct3D was introduced in Multitexturing in DirectX® 6 in the September 1998 issue of Game Developer Magazine and is also provided on this SDK.
MulTex for OpenGL® uses the ARB_multitexture and EXT_texture_env_combine extensions to generate rendered results. If either of these extensions is not present, no rendered results will be shown (but the app will still work and allow the user to experiment with state settings, generate code, etc). OGLMulTex is constrained so that any states which can be programmed will run in hardware on the Rage128 and Rage128 Pro.
|
Draw buffers and Z-buffers
Like earlier chips in the Rage family, the Rage 128 family
accelerates 3D drawing to 16, 24 and 32 bit frame buffers.
The advantage of drawing 3D primitives to a deep (32 bit)
buffer is that no dithering
needs to take place as is the case in 16 bit mode. This
results in the elimination of visual anomalies like dither
patterns and is a more accurate representation of true
world colors.
Naturally, using 32-bpp buffers increases the frame buffer memory demands, as can be seen from the table below. Since AGP provides access to a larger amount of texture memory, using the frame buffer memory exclusively for draw buffers and Z-buffers is much more practical than it has been in the past. The following table shows the memory requirements for different draw surfaces and z-buffer surfaces and their corresponding availability for specific video memory configurations:
|
|
3D DISPLAY MODES
|
|
Frame
|
Screen
|
Color
|
Front
|
Back
|
Z Buffer
|
Z
|
Local Textures*
|
Primary
|
|
Buffer
|
Resolution
|
Depth
|
Buffer
|
Buffer
|
Depth
|
Buffer
|
W Z
|
W/O Z
|
Use of
|
|
MB
|
Pixels
|
x
|
Pixels
|
Bits/Pixel
|
MB
|
MB
|
Bits
|
MB
|
MB
|
MB
|
Configuration
|
|
2
|
640
|
x
|
480
|
16
|
0.59
|
0.59
|
16
|
0.59
|
0.24
|
0.83
|
Value systems
|
|
4
|
640
|
x
|
480
|
32
|
1.17
|
1.17
|
16
|
0.59
|
1.07
|
1.66
|
Mainstream
|
|
4
|
800
|
x
|
600
|
16
|
0.92
|
0.92
|
16
|
0.92
|
1.25
|
2.17
|
systems
|
|
8
|
800
|
x
|
600
|
32
|
1.83
|
1.83
|
32
|
1.83
|
2.51
|
4.34
|
|
|
8
|
1024
|
x
|
768
|
16
|
1.50
|
1.50
|
32
|
3.00
|
2.00
|
5.00
|
Power
|
|
8
|
1024
|
x
|
768
|
32
|
3.00
|
3.00
|
16
|
1.50
|
0.50
|
2.00
|
Users
|
|
8
|
1280
|
x
|
1024
|
16
|
2.50
|
2.50
|
16
|
2.50
|
0.50
|
3.00
|
|
|
16
|
1280
|
x
|
1024
|
32
|
5.00
|
5.00
|
32
|
5.00
|
1.00
|
6.00
|
Volume
|
|
16
|
1600
|
x
|
1200
|
16
|
3.66
|
3.66
|
32
|
7.32
|
1.35
|
8.68
|
CAD
|
|
32
|
1600
|
x
|
1200
|
32
|
7.32
|
7.32
|
32
|
7.32
|
10.0
|
17.35
|
PC
|
|
32
|
1920
|
x
|
1200
|
32
|
8.79
|
8.79
|
32
|
8.79
|
5.63
|
14.42
|
Workstations
|
Note: These are the primary modes supported. Others are also available.
*AGP configurations can use non-local (system) memory for additional textures |