This is a project I’ve been doing for university with a colleague.
We implemented some features. Among others:
- Terrain renderer We implemented the random displacement algorithm for random terrain generation on the fly and moved it to the GPU. Texturing is done on-the-fly as well using proto-textures. The terrain can be rendered in different levels of detail.
- Collision detection A simple collision detection was implemented.
- Reflection We implemented reflection for the water using a cubemap.
- Particle systems We are simulating rain, snow, and “fire” on the GPU.
- Vegetation We added trees and grass to our terrain.
- Lightning/shadows We implemented lights and shadows for terrain as well as vegetation.
- Water/Parallax Occlusion The water is rendered using parallax occlusion combined with cube-map reflection.
- Caustics We also added caustics that can be seen on the surface underwater.
Even if the project is officially finished, there’s a lot to do. Among others:
- refactor and clean up code
- optimize code (especially shaders)
- clean SVN repository