ATI SDK

ATI Product Information

Support for Alternate OS's

Hardware partners

Software partners

RenderMonkey

Drivers


 
 

Highlights


GPU MeshMapper (V1.0)

GPU PerfStudio (V1.2)

Samples: CrossFire Detect (update)

Samples: PostTonemapResolve

The Compressonator (version 1.41)

GPU Shader Analyzer (V1.42)

RenderMonkey™
(version 1.81) (New)


ATI Compress (version 1.6)

AMD Tootle 2.0 (New)

AMD OpenGL ES 2.0 Emulator (V1.1) (New)

HLSL2GLSL (V0.9)

AMD at GDC 2007

ATI SDK


 
 
ATI Demos
 

ATI Terrain

A performance oriented terrain engine

 
This application was designed to make maximum use of Rage 128 driver optimizations for processing geometry. It is written in OpenGL. The app processes the terrain geometry as compiled vertex arrays in order to take advantage of processor specific driver optimizations such as SSE enhanced code.
 
Rendering Architechture
ATI_Terrian was essentially designed to be a polygon pump. The goal of the app is to push as many polygons as possible at the driver. In order to acheive this goal, all polygons are preclassified by a "material type". The "material" is actually all relavent rendering state such as which texture is applied to the poly. This allows the app to only use each distinct rendering state at most once per frame.

In order to calculate the potentially viewable set of polygons each frame, the program uses an octree culling algorithm. The polygons are all presorted into an octree. Each frame, the app calculates the planes defining the view frustum. The app next descends the tree, culling octrants that fail the planar half-space culling. Once the algorthm reaches a node, it places pointers to the lists of polygons into queues based on the render states they require.
 
Geometry Throughput Optimizations
All the terrain data is rendered using compiled vertex arrays and the glDrawElements function call. Additionally, the following steps are taken in organizing the arrays:
  • All arrays are aligned to 32 byte boundaries.
  • The vertex arrays are padded to be 16 bytes per vertex.
  • The texture coordinates are tightly packed floats.
  • The color array is tightly packed GLubytes.

Operation
This program requires 64 MB of RAM to run acceptably, but 128 MB is suggested to minimize paging at startup. When running ATI Terrain on a Rage128, it is suggested that you install the drivers released in support of Quake 3 Test. Also for maximum performance, it is suggested that this demo be run on Windows 9x due to architectural limitations of Windows NT.

When started ATI Terrain program will, by default, load a pre-recorded path file and begin replaying it in an endless loop. To over-ride this behavior, you can edit the configuration file as described below. When the program is in interactive mode, the user can manuever with either the mouse or a 6 DOF joystick.

Keyboard Controls:
  • F1 - Load and run the default path
  • F2 - Stop playing a path and drop into interactive mode
  • F3 - Restart the presently loaded path
  • F6 - Toggle the drawing of the Statistics
  • F8 - Toggle the drawing of the terrain in wire-frame
  • ALT + F4 - Exit
Output:

On the right side of the screen will be three separate lines showning performance statistics. The blue one is the polygon throughput on the system expresed in thousands of polygons per second. The data in red is the current frame rate and the current number of polygons found to be within the frustum. Both the red and the blue statistics are averaged over sixty frames to smooth the numbers. The green statistics are the average polygon throughput and frame rate for the last complete cycle of the scripted path.

Configuration File:

ATI Terrain can be configured with the use of the terrain.cfg file. The file is a simple text file with key/value pairs. The keys are all in caps, and the values are either integers or quote delimited strings. Comments are made by placing a ; in the first character of a line. The following are the presently valid keys:
 
Key Type Meaning
SCREEN_WIDTH Integer Width to use as screen res.
SCREEN_HEIGTH Integer Height to use as screen res.
SCREEN_DEPTH 16/32 Bits per pixel to use as screen depth
Z_DEPTH 16/24 Bits of precision in depth buffer
AUTO_FLY 0/1 Whether to run canned demo at start
PATH String File name of a path file(*.pth)
TIME_DEMO 0/1 Whether to run a canned set of frames for this path
CVA 0/1 Whether to use compiled vertex arrays
V_SHADING 0/1 Whether to use vertex shading
TEXTURE_0 0/1 Whether to apply the base texture
DRAW_SKY 0/1 Whether to draw the sky background (clears back buffer if off)
DRAW_STATS 0/1 Whether to draw the statistics numbers
 
Contents:
The source code zip file contains only the source and project files for ATI_Terrain. It does not contain the data needed to run the app. The demo zip contains everything that should be needed to run the app. It contains the octree file, the texture maps, 5 path files, the sky's geometry file, the materials file, and a configuration file. The five included paths are:
  • Mountains.pth - loop through the mountainous terrain
  • Default.pth - long loop covering the entire environment
  • Canyon.pth - run through a deep canyon and back
  • Farm_Loop.pth - circle the farm house and fields
  • Castle.pth - Circle the castle twice buzzing the tower on the second pass

Requirements:

This app requires glut32.dll.


Questions/Comments:

Please contact developer relations at ATI.


Win32 Downloads

Executable and support files (22 MB)

Source and project files (80 KB)


MacOS Downloads

Entire Project (26.3 MB)
 
 
 


 



©2009 Advanced Micro Devices, Inc.  |  Contact AMD  |  Careers  |  RSS Feeds  |  Terms and Conditions  |  Privacy  |  Trademark information  |  Site Map