In the 'doLighting' function there is a line with 'spe/glossy' -> 'col += 0.25*glossy*pow(spe/glossy,8.0)*vec3(1.3,1.0,0.8)*sha*(0.3+0.7*fre)*occ;'. When dolphin is under water, 'glossy' and 'spe' equals zero. According to specification it can produce an unspecified value.

On Intel OpenGL driver it causes a corruption - part of the dolphin body which is under water has black color.