Final Project
For my final project I implemented a system for rendering water and bubbles in real-time. I used custom shaders for the water surface and the bubbles and simulated the water surface using the shallow water equations. I was able to get ~30-40fps on an NVidia 8400M GT.
Water Simulation
The water surface is represented by a 2D height field that is updated at each time step using the shallow water equations. The surface is initially flat but is modified when a bubble reaches the surface and pops, creating an outward moving wave
Water Surface Rendering
The water surface is rendered using a custom shader written in NVidia Cg. The shader is designed to handle the following effects:
- Local reflections
- Refraction
- External Lighting
- Fresnel Effect
Bubble Rendering
The bubbles are also rendered using a custom shader that handles:
- Refraction (Lens Effect)
- External Lighting (Specular Highlights)
My final presentation (with images to illustrate all the effects listed above) can be downloaded here.
A binary of the program and (hopefully) all of the dependencies required to run is are here.