Here are a few screenshots from my latest project, an underwater screensaver,
rendered in realtime using OpenGL.
This is one of my first attempts with 3D graphics, so I have kind of added more
features while learning.
I think the result is pretty cool, though it requires a Geforce or something
similar by now (About 25 FPS on a Geforce256).
The lightmaps are procedurally generated and animated. (I'm really running out
of texture units)
(The light is refracted by a simple wave simulation to generate the typical
light-patterns on the bottom.)
In the shot with the can you can see a soft shadow at the bottom, which gets
sharper as the can moves closer to the bottom.
(It looks better when animated. Also, notice the darkened shadow volume)
The rocks seen in one of the pics have some precalculated bump-maps.
The schools of smaller fish uses a simple flocking simulation. They also avoid
the rocks, and tries to escape the hunting dolphin.
The dolphin, which is programmed to hunt the smaller fishes, is animated by
deforming it's object space with a suitable continious function.
The seaweed is animated to give the illusion of streaming water.
Most of the geometry is procedurally generated.
I'll try to make it available for download soon.
Look for it at: www.liscreensavers.com