attribute vec4 materialColor; void main() { //transform vertex gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; vec3 pos = (gl_ModelViewMatrix * gl_Vertex).xyz; pos = normalize(pos); float d = dot(pos, normalize(gl_NormalMatrix * gl_Normal)); d *= d; d = 1.0 - d; d *= d; d = min(d, materialColor.a*2.0); gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; gl_FrontColor.rgb = materialColor.rgb; gl_FrontColor.a = max(d, materialColor.a); }