#version 120 varying vec4 v_TexCoord; uniform sampler2D u_Sampler; uniform sampler2D u_NormalMap; uniform vec4 u_Color; uniform float u_SpriteSize; uniform vec2 u_PixelPosition; uniform float u_Rotation; float VecLen (vec2 Vec) { return sqrt((Vec.x*Vec.x)+(Vec.y*Vec.y)); } void main () { // vec2 center = vec2(1280/2, 720/2); // float light = (500 - distance(center, gl_FragCoord.xy)) / 500; // gl_FragColor = texture2D(u_sampler, v_texcoord.xy) * vec4(light, light, light, 1); // vec4 Color = texture2D(u_Sampler, v_TexCoord.xy); // vec4 ColorAvg = vec4((Color.r + Color.g + Color.b) / 3.0f, // (Color.r + Color.g + Color.b) / 3.0f, // (Color.r + Color.g + Color.b) / 3.0f, // Color.a); float XDiff = (u_PixelPosition.x-u_SpriteSize) - gl_FragCoord.x; float YDiff = (u_PixelPosition.y+u_SpriteSize) - gl_FragCoord.y; float DiffLength = sqrt((XDiff*XDiff)+(YDiff*YDiff)); float LightX = -100.0f; float LightY = -100.0f; //float Color = 1.0f - (((XDiff)+(YDiff)) / u_SpriteSize); float Color = 1.0f - (DiffLength / (u_SpriteSize*2.0f)); if (Color < 0.1f) Color = 0.1f; vec4 LightingColor = vec4(Color, Color, Color, 1.0f); vec4 Texture0 = texture2D(u_Sampler, v_TexCoord.xy); vec4 Texture1 = texture2D(u_NormalMap, v_TexCoord.xy); vec3 Normal = (2.0f*Texture1.xyz)-1.0f; vec3 LightPos; LightPos.x = (sin(radians(u_Rotation))*-u_SpriteSize)+(cos(radians(u_Rotation))*-u_SpriteSize); LightPos.y = (sin(radians(u_Rotation))*-u_SpriteSize)+(cos(radians(u_Rotation))*-u_SpriteSize); LightPos.z = 0.0f; float Dot = dot(Normal.xyz, LightPos); //LightingColor = vec4(vec3(1.0f-(Dot/u_SpriteSize)), 1.0f); LightingColor = vec4(1.0f); gl_FragColor = (Texture0 * u_Color) * (LightingColor); //gl_FragColor = vec4(Texture0 * vec4(0.0f, 0.0f, 1.0f, 1.0f)); }