ROAM Algorithm Source Code -- AGP Chunks and Procedural Terrain

[ROAM Algorithm Homepage] [ROAM Algorithm Version 2 work in progress]

ROAM at 40 million triangles per second

On modern graphics hardware using AGP chunks, ROAM is shown here running with 1.56 million triangles at 25.6 frames per second. The geometry in this case is generated procedurally during flight using midpoint displacement with smooth interpolatory subdivision. This page documents an early snapshot of some of the ideas in progress for the upcoming ROAM 2.0, demonstrated with actual software. For an overview of ROAM 2, see this page.

This is a screenshot (actual size) taken on a Linux PC with a 2.53GHz Pentium 4 with RDRAM 1066 memory and an Nvidia GF4 Ti4600 graphics card.

This work-in-progress code is available here:


Linux+Nvidia executable:

Quick instructions: untar, cd LibGen* , make, ./bin/roamtest, 'a'/'z' accelerates, spacebar stops, left button rotates. More in LibGen*/Roam/README.

On a 2.53/533 P4 +GF4, modest window size, slow movement, high triangle count I get 40Mtri/sec (see figure). Drops to 30Mtri/sec if big window and moving fast.

Note: this does not use textures draped over the geometry, but puts shading information into the vertices. This results in noticable popping. This popping will go away when textures are used.

-- Mark Duchaineau

Updated 2003-02-20 --