Low poly models: sea bottom, sea plants, fish, stone.
Texturing: UV Map for all the above models with real photos.
Compositing: A combination of a series of nodes have been used to make water bubbles as realistic as possible!
Rigging: Fish and plants.
Particles: Particles are keyed to follow a particular direction (up) yet retain a light certain movement to make them more realistic