Demo of Height-Field Terrain Rendering ====================================== What This Is ~~~~~~~~~~~~ HEIGHT.ZIP is a demonstration of the height-field rendering graphics "engine" I have been working on for the past few months. For the most part I have used it as a test harness to explore the visual results of various "speed-up" techniques. It is not a game (yet), but intended to be used in one. System Requirements ~~~~~~~~~~~~~~~~~~~ - 386 or 486 - VGA - 5M memory Running The Program ~~~~~~~~~~~~~~~~~~~ Use the + and - keys (on the keypad) to increase/decrease speed, and the arrow keys to steer. In addition, the first six Function keys have the following actions: F1 - Toggle step size (1,2,4). The "engine" employs a basic "ray-casting" algorithm. Step size is how far to jump between locations inspected. F2 - Toggle pixel size (1,2,4). Using ModeX alter the width of the pixels being plotted. The wider the pixel, the fewer columns that have to be plotted. F3 - Toggle between maximum distances checked (300,600,900). Tells the program when it can stop "stepping" along the ray. F4 - Drawing method (DDA or Fixed-Point). I originally started with a DDA algorithm for calculating each step. This method introduces some distortion, so I tried using a fixed-point math technique and was surprized to find that it was almost as fast. F5 - Toggle between screen layouts (views). The "engine" is quite flexible w.r.t. viewport size and location. F6 - Toggle "overhead" map on and between resolutions (1x,2x,4x). Status ~~~~~~ The upper left corner of the landscape viewport has the current status of the above "toggles" and an indication of the frame rate the engine is achieving. Landscapes ~~~~~~~~~~ The landscape data included was generated by me. Height-field data (heights.pcx) was created with a home grown fractal technique. These values were then imported into Vista Pro 3.0 where the colour-field (colours.pcx) was generated. Mike Gardi Useful Software Voice: (519) 746-2931 FAX: (519) 746-5972 Internet: megardi@watserv1.uwaterloo.ca CompuServe: 70242,3102 GEnie: M.Gardi