Basic OpenGL

This project was my first experience with OpenGL. The water is generated each time step via a heightmap function, which determines the vertex positions of the heightmap. Using these positions, the normals are recalculated each frame. The basin that the water rests in has its mesh loaded and its normals calculated during initialization. The actual rendering calls are done using vertex arrays to allow for a more detailed real-time heightmap. Basic fixed-functionality lighting was added to give the scene more depth.

Here the basin and mesh are rendered in a color coordinated wireframe.

A close-up of the heightmap mesh. It's dimensions are 144x144 triangles.

A specific view of the water surface with high amounts of specular reflection.

A video of the heightmap in motion, with both shaded and in wireframe renderings.