attribute vec3 normals;
attribute vec2 texCoord1;
varying vec2 texCoord;
varying float height;
uniform mat4 exfCamInverse;
varying vec3 fragPos;
varying vec3 eyeVec;
varying vec3 norm;
uniform vec3 exfCamPos;
void main()
{
 texCoord = texCoord1;
 height = gl_Vertex.y;
 vec4 posLol = gl_Vertex;
 //posLol+= vec4(0.0,0.0,sin(0.5 + gl_Vertex.y )*160.0+160.0,0.0);
 fragPos = (exfCamInverse*gl_ModelViewMatrix*posLol).xyz;
 
 eyeVec= (exfCamInverse*gl_ModelViewMatrix*posLol).xyz - exfCamPos;
 mat3 camRotInv;
 camRotInv[0] = exfCamInverse[0].xyz;
 camRotInv[1] = exfCamInverse[1].xyz;
 camRotInv[2] = exfCamInverse[2].xyz;
 norm = (camRotInv*gl_NormalMatrix)*normals;
 
 gl_Position = gl_ModelViewProjectionMatrix*posLol;
}