Real-time water rendering - introducing the projected grid concept

Master of Science thesis in computer graphics, March 2004

Author: Claes Johanson
Supervisor: Calle Lejdfors, Department of Computer Science, Lund University

The thesis was conducted in cooperation with Saab Bofors Dynamics. Magnus Anderholm was supervisor at SBD.



Demo application (win32 binary + textures + source, 4.25MB)

For full functionality a Radeon 9500 or better GPU is required. Lesser cards have to settle with normals generated on the CPU with a lower resolution. A fully compliant DirectX8 card is the bare minumum.


These are a couple of screenshots from the techdemo running on a Radeon 9700.

Thesis paper


This thesis will examine how a large water surface can be rendered in an efficient manner using modern graphics hardware. If a non-planar approximation of the water surface is required, a high-resolution polygonal representation must be created dynamically. This is usually done by treating the surface as a height field. To allow spatial scalability, different methods of “Level-Of-Detail” (LOD) are often used when rendering said height field. This thesis presents an alternative technique called “projected grid”. The intent of the projected grid is to create a grid mesh whose vertices are even-spaced, not in world-space which is the traditional way but in post-perspective camera space. This will deliver a polygonal representation that provides spatial scalability along with high relative resolution without resorting to multiple levels of detail.


Paper (low detail, 743 kB)
Paper (high detail, 1.73 MB)