I’ve programmed the water : animation, caustics, reflexions, and an optimized cube mapping, faked cubemapping options. Also when you go undersea, and have a very realistic real time screen deformation and the reflections on the water swaps as well. You can change the caustics contrast, color, blending. The 3 levels of textures (optional) and reflections can be blended together. An option can make the textures seamless automatically. bluring (soft and hard) can be applied automatically at the textures load time. The 2 technics used for doing the cube mapping (and minimize the CPU use) are as follow :
1 – accurate : each side of the cube is rendered in a different frame, and step every 2 frames (one frame calculate 1 face second frame do nothing).
2- faked : the cubemap is created at the program start and has only the skydome texture, no objects and terrain reflexions can be processed.
With the method 1, I get 24 FPS with my FX5200, with the faked one it jumps to 37 FPS. (about 20 000 poly and 30 objects). Without these optimization the frame rate was about 7-9 FPS.
Check the pictures to have more info. Note in these pictures the shadows have been removed and the lens flare as well.









