58 lines
1.8 KiB
GLSL
58 lines
1.8 KiB
GLSL
#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));
|
|
}
|