Vertex and Fragment Shaders on the Radeon® 8500
|
|
|
The Radeon8500_POINTLIGHT_SHADER sample demonstrates the use of Vertex Shaders and Fragment Shaders along with Object Buffers. This sample app uses the following OpenGL extensions: ATI_fragment_shader, EXT_vertex_shader and ATI_vertex_array_object.
|
|
|
|
|
|
Figure 1 - Vertex and Fragment
shading on the Radeon 8500
|
|
|
This sample employs the power of the Radeon 8500 to perform many effect in a single pass:
- Point Light Attenuation:
-
- Uses a 1D Falloff Texture (serves as look up table for distance attenuation)
- Computes per pixel attenuation in shader
- Objects receives less light as they move further from light source
- Used in all three shaders
- NHHH Mapping (Per Pixel Specular Lighting):
-
- Uses a 2D texture as lookup table
- Achieves high precision (N.H)k calculations on a per pixel basis
- Allows developers to choose *any* value for k while avoiding potentially expensive power functions when dealing with large k exponents
- Used for Chrome Shader and Gloss Shader
- DOT3 Bump Mapping:
-
- Adds realism to textured surfaces
- Used for Rusty Metal Shader
- NHK Mapping (Per Pixel Specular Lighting With Per Pixel Specular Exponents):
-
- Uses a 2D texture as lookup table
- Achieves high precision (N.H)k calculations on a per pixel basis
- Allows artists to specify a different specular exponent at every texel!
- Used in Rusty Metal Shader (metal's specular lighting properties change depending on how rusty or clean metal is).
|
|
|

|
|
|
Figure 2 - Object receives less
light as it moves away from point light source
|
|
|
- Radeon8500_POINTLIGHT_SHADER Controls
-
- UP/DOWN Arrows - Zoom in and Out
- RIGHT_CLICK+MOUSE - Translate Object
- LEFT_CLICK+MOUSE - Rotate Object
- [ESC] - Quit
NOTE: You may experience some problems running this app if you have less than 256MB of memory.
Download
R8500PointLightShader.zip
|
|
|