| @@ -0,0 +1,16 @@ | |||
| 1 | + | attribute vec2 a_Vertex; | |
| 2 | + | attribute vec2 a_TexCoord; | |
| 3 | + | uniform mat3 u_TextureMatrix; | |
| 4 | + | varying vec2 v_TexCoord; | |
| 5 | + | varying vec2 v_TexCoord2; | |
| 6 | + | uniform mat3 u_TransformMatrix; | |
| 7 | + | uniform mat3 u_ProjectionMatrix; | |
| 8 | + | uniform vec2 u_Offset; | |
| 9 | + | ||
| 10 | + | void main() | |
| 11 | + | { | |
| 12 | + | gl_Position = vec4((u_ProjectionMatrix * u_TransformMatrix * vec3(a_Vertex.xy, 1.0)).xy, 1.0, 1.0); | |
| 13 | + | v_TexCoord = (u_TextureMatrix * vec3(a_TexCoord,1.0)).xy; | |
| 14 | + | v_TexCoord2 = (u_TextureMatrix * vec3(a_TexCoord + u_Offset,1.0)).xy; | |
| 15 | + | } | |
| 16 | + |
| @@ -0,0 +1,30 @@ | |||
| 1 | + | uniform mat4 u_Color; | |
| 2 | + | varying vec2 v_TexCoord; | |
| 3 | + | varying vec2 v_TexCoord2; | |
| 4 | + | varying vec2 v_TexCoord3; | |
| 5 | + | uniform sampler2D u_Tex0; | |
| 6 | + | uniform float u_Time; | |
| 7 | + | uniform vec2 u_Resolution; | |
| 8 | + | ||
| 9 | + | void main() | |
| 10 | + | { | |
| 11 | + | gl_FragColor = texture2D(u_Tex0, v_TexCoord); | |
| 12 | + | vec4 texcolor = texture2D(u_Tex0, v_TexCoord2); | |
| 13 | + | vec4 texcolor2 = texture2D(u_Tex0, v_TexCoord3); | |
| 14 | + | ||
| 15 | + | if(texcolor.r > 0.9) { | |
| 16 | + | gl_FragColor *= vec4(sin(u_Time * 5.0), sin(u_Time * 5.0 + 2.0), sin(u_Time * 5.0 + 4.0), 1.0); | |
| 17 | + | } else if(texcolor.g > 0.9) { | |
| 18 | + | gl_FragColor *= vec4(sin(u_Time * 5.0 + 2.0), sin(u_Time * 5.0 + 4.0), sin(u_Time * 5.0), 1.0); | |
| 19 | + | } else if(texcolor.b > 0.9) { | |
| 20 | + | gl_FragColor *= vec4(sin(u_Time * 5.0 + 4.0), sin(u_Time * 5.0), sin(u_Time * 5.0 + 2.0), 1.0); | |
| 21 | + | } | |
| 22 | + | ||
| 23 | + | if(gl_FragColor.a < 0.01) { | |
| 24 | + | if(texcolor2.a > 0.01) { | |
| 25 | + | gl_FragColor = vec4(0.5 + abs(0.5 - mod(u_Time, 1.0)), 0.0, 0.0, 1.0); | |
| 26 | + | } else { | |
| 27 | + | discard; | |
| 28 | + | } | |
| 29 | + | } | |
| 30 | + | } |
| @@ -0,0 +1,41 @@ | |||
| 1 | + | attribute vec2 a_TexCoord; | |
| 2 | + | uniform mat3 u_TextureMatrix; | |
| 3 | + | varying vec2 v_TexCoord; | |
| 4 | + | varying vec2 v_TexCoord2; | |
| 5 | + | varying vec2 v_TexCoord3; | |
| 6 | + | varying vec2 v_Position; | |
| 7 | + | attribute vec2 a_Vertex; | |
| 8 | + | uniform mat3 u_TransformMatrix; | |
| 9 | + | uniform mat3 u_ProjectionMatrix; | |
| 10 | + | uniform vec2 u_Offset; | |
| 11 | + | uniform vec2 u_Resolution; | |
| 12 | + | uniform vec2 u_Center; | |
| 13 | + | ||
| 14 | + | void main() | |
| 15 | + | { | |
| 16 | + | vec2 vertex = a_Vertex; | |
| 17 | + | vec2 text = a_TexCoord; | |
| 18 | + | vec2 text2 = a_TexCoord; | |
| 19 | + | if(vertex.x < u_Center.x) { | |
| 20 | + | vertex.x -= 1.0; | |
| 21 | + | text.x -= 1.0; | |
| 22 | + | } | |
| 23 | + | if(vertex.x > u_Center.x) { | |
| 24 | + | vertex.x += 1.0; | |
| 25 | + | text.x += 1.0; | |
| 26 | + | } | |
| 27 | + | if(vertex.y < u_Center.y) { | |
| 28 | + | vertex.y -= 1.0; | |
| 29 | + | text.y -= 1.0; | |
| 30 | + | } | |
| 31 | + | if(vertex.y > u_Center.y) { | |
| 32 | + | vertex.y += 1.0; | |
| 33 | + | text.y += 1.0; | |
| 34 | + | } | |
| 35 | + | gl_Position = vec4((u_ProjectionMatrix * u_TransformMatrix * vec3(vertex.xy, 1.0)).xy, 1.0, 1.0); | |
| 36 | + | v_Position = a_Vertex.xy - u_Center; | |
| 37 | + | v_TexCoord = (u_TextureMatrix * vec3(text,1.0)).xy; | |
| 38 | + | v_TexCoord2 = (u_TextureMatrix * vec3(text + u_Offset,1.0)).xy; | |
| 39 | + | v_TexCoord3 = (u_TextureMatrix * vec3(text2,1.0)).xy; | |
| 40 | + | } | |
| 41 | + |
| @@ -0,0 +1,11 @@ | |||
| 1 | + | uniform float u_Time; | |
| 2 | + | uniform sampler2D u_Tex0; | |
| 3 | + | varying vec2 v_TexCoord; | |
| 4 | + | ||
| 5 | + | void main() | |
| 6 | + | { | |
| 7 | + | vec4 color = texture2D(u_Tex0, v_TexCoord); | |
| 8 | + | float d = u_Time * 2.0; | |
| 9 | + | color.x += (1.0 + sin(d)) * 0.1; | |
| 10 | + | gl_FragColor = color; | |
| 11 | + | } |
| @@ -0,0 +1,51 @@ | |||
| 1 | + | uniform mat4 u_Color; | |
| 2 | + | varying vec2 v_TexCoord; | |
| 3 | + | varying vec2 v_TexCoord2; | |
| 4 | + | varying vec2 v_TexCoord3; | |
| 5 | + | varying vec2 v_Position; | |
| 6 | + | uniform sampler2D u_Tex0; | |
| 7 | + | uniform sampler2D u_Tex1; | |
| 8 | + | uniform float u_Time; | |
| 9 | + | uniform vec2 u_Resolution; | |
| 10 | + | ||
| 11 | + | vec2 direction = vec2(0.9,0.3); | |
| 12 | + | float speed = 0.3; | |
| 13 | + | float pressure = 1.0; | |
| 14 | + | float zoom = 0.5; | |
| 15 | + | ||
| 16 | + | float r = 1.0; | |
| 17 | + | float g = 0.0; | |
| 18 | + | float b = 0.0; | |
| 19 | + | float mode = 1.0; | |
| 20 | + | ||
| 21 | + | void main() | |
| 22 | + | { | |
| 23 | + | gl_FragColor = texture2D(u_Tex0, v_TexCoord); | |
| 24 | + | ||
| 25 | + | vec2 offset = (v_TexCoord + (direction * u_Time * speed)) / zoom; | |
| 26 | + | vec3 bgcol = texture2D(u_Tex0, v_TexCoord).xyz; | |
| 27 | + | vec3 fogcol = texture2D(u_Tex1, offset).xyz; | |
| 28 | + | vec3 col = bgcol + fogcol*pressure; | |
| 29 | + | vec4 color = texture2D(u_Tex0, v_TexCoord); | |
| 30 | + | ||
| 31 | + | vec4 texcolor2 = texture2D(u_Tex0, v_TexCoord3); | |
| 32 | + | if(gl_FragColor.a < 0.01) { | |
| 33 | + | if(texcolor2.a > 0.01) { | |
| 34 | + | gl_FragColor = vec4(r, g, b, mode); | |
| 35 | + | } else { | |
| 36 | + | discard; | |
| 37 | + | } | |
| 38 | + | } | |
| 39 | + | ||
| 40 | + | ||
| 41 | + | gl_FragColor = mix(gl_FragColor, vec4(col, color.a), 0.5); | |
| 42 | + | vec4 texcolor = texture2D(u_Tex0, v_TexCoord2); | |
| 43 | + | if(texcolor.r > 0.9) { | |
| 44 | + | gl_FragColor *= texcolor.g > 0.9 ? u_Color[0] : u_Color[1]; | |
| 45 | + | } else if(texcolor.g > 0.9) { | |
| 46 | + | gl_FragColor *= u_Color[2]; | |
| 47 | + | } else if(texcolor.b > 0.9) { | |
| 48 | + | gl_FragColor *= u_Color[3]; | |
| 49 | + | } | |
| 50 | + | if(gl_FragColor.a < 0.01) discard; | |
| 51 | + | } |
| @@ -0,0 +1,25 @@ | |||
| 1 | + | uniform float u_Depth; | |
| 2 | + | uniform mat4 u_Color; | |
| 3 | + | varying vec2 v_TexCoord; | |
| 4 | + | varying vec2 v_TexCoord2; | |
| 5 | + | uniform sampler2D u_Tex0; | |
| 6 | + | uniform vec2 u_Resolution; | |
| 7 | + | uniform float u_Time; | |
| 8 | + | ||
| 9 | + | void main() | |
| 10 | + | { | |
| 11 | + | // Sample the texture at the current fragment's texture coordinate | |
| 12 | + | vec4 texColor = texture2D(u_Tex0, v_TexCoord); | |
| 13 | + | ||
| 14 | + | // Calculate grayscale value by averaging RGB channels | |
| 15 | + | float gray = (texColor.r + texColor.g + texColor.b) / 2.0; | |
| 16 | + | ||
| 17 | + | // Define a color tint (e.g., red) | |
| 18 | + | vec4 tint = vec4(1.0, 0.0, 0.0, 1.0); | |
| 19 | + | ||
| 20 | + | // Apply the grayscale effect and color tint | |
| 21 | + | gl_FragColor = gray * tint; | |
| 22 | + | ||
| 23 | + | // Discard fragments with low alpha (transparency) | |
| 24 | + | if (gl_FragColor.a < 0.01) discard; | |
| 25 | + | } |
| @@ -0,0 +1,18 @@ | |||
| 1 | + | attribute vec2 a_TexCoord; | |
| 2 | + | attribute vec2 a_Vertex; | |
| 3 | + | uniform mat3 u_TextureMatrix; | |
| 4 | + | varying vec2 v_TexCoord; | |
| 5 | + | varying vec2 v_TexCoord2; | |
| 6 | + | varying vec2 v_TexCoord3; | |
| 7 | + | uniform mat3 u_TransformMatrix; | |
| 8 | + | uniform mat3 u_ProjectionMatrix; | |
| 9 | + | uniform vec2 u_Offset; | |
| 10 | + | uniform vec2 u_Resolution; | |
| 11 | + | uniform float u_Depth; | |
| 12 | + | void main() | |
| 13 | + | { | |
| 14 | + | gl_Position = vec4((u_ProjectionMatrix * u_TransformMatrix * vec3(a_Vertex.xy, 1.0)).xy, u_Depth / 16384.0, 1.0); | |
| 15 | + | v_TexCoord = (u_TextureMatrix * vec3(a_TexCoord,1.0)).xy; | |
| 16 | + | v_TexCoord2 = (u_TextureMatrix * vec3(a_TexCoord + u_Offset,1.0)).xy; | |
| 17 | + | v_TexCoord3 = (u_TextureMatrix * vec3(u_Resolution,1.0)).xy; | |
| 18 | + | } |
| @@ -0,0 +1,16 @@ | |||
| 1 | + | uniform float u_Time; | |
| 2 | + | uniform sampler2D u_Tex0; | |
| 3 | + | varying vec2 v_TexCoord; | |
| 4 | + | ||
| 5 | + | vec4 sepia(vec4 color) | |
| 6 | + | { | |
| 7 | + | return vec4(dot(color, vec4(.393, .769, .189, .0)), | |
| 8 | + | dot(color, vec4(.349, .686, .168, .0)), | |
| 9 | + | dot(color, vec4(.272, .534, .131, .0)), | |
| 10 | + | 1); | |
| 11 | + | } | |
| 12 | + | ||
| 13 | + | void main() | |
| 14 | + | { | |
| 15 | + | gl_FragColor = sepia(texture2D(u_Tex0, v_TexCoord)); | |
| 16 | + | } |
| @@ -0,0 +1,16 @@ | |||
| 1 | + | uniform float u_Time; | |
| 2 | + | uniform sampler2D u_Tex0; | |
| 3 | + | varying vec2 v_TexCoord; | |
| 4 | + | ||
| 5 | + | vec4 sepia(vec4 color) | |
| 6 | + | { | |
| 7 | + | return vec4(dot(color, vec4(.560, .105, .675, .0)), | |
| 8 | + | dot(color, vec4(.390, .055, .635, .0)), | |
| 9 | + | dot(color, vec4(.305, .035, .565, .0)), | |
| 10 | + | color.a); | |
| 11 | + | } | |
| 12 | + | ||
| 13 | + | void main() | |
| 14 | + | { | |
| 15 | + | gl_FragColor = sepia(texture2D(u_Tex0, v_TexCoord)); | |
| 16 | + | } |
| @@ -0,0 +1,19 @@ | |||
| 1 | + | uniform float u_Time; | |
| 2 | + | uniform sampler2D u_Tex0; | |
| 3 | + | varying vec2 v_TexCoord; | |
| 4 | + | ||
| 5 | + | void main() | |
| 6 | + | { | |
| 7 | + | vec4 col = texture2D(u_Tex0, v_TexCoord); | |
| 8 | + | ||
| 9 | + | // Glitch effect | |
| 10 | + | float glitchSpeed = 1.0; | |
| 11 | + | float glitchIntensity = 0.1; | |
| 12 | + | float glitchOffsetX = glitchIntensity * sin(u_Time * glitchSpeed); | |
| 13 | + | float glitchOffsetY = glitchIntensity * cos(u_Time * glitchSpeed); | |
| 14 | + | vec2 glitchUV = v_TexCoord + vec2(glitchOffsetX, glitchOffsetY); | |
| 15 | + | vec4 glitchColor = texture2D(u_Tex0, glitchUV); | |
| 16 | + | col.rgb += glitchColor.rgb; | |
| 17 | + | ||
| 18 | + | gl_FragColor = col; | |
| 19 | + | } |
| @@ -0,0 +1,46 @@ | |||
| 1 | + | uniform mat4 u_Color; | |
| 2 | + | varying vec2 v_TexCoord; | |
| 3 | + | varying vec2 v_TexCoord2; | |
| 4 | + | varying vec2 v_TexCoord3; | |
| 5 | + | varying vec2 v_Position; | |
| 6 | + | uniform sampler2D u_Tex0; | |
| 7 | + | uniform float u_Time; | |
| 8 | + | uniform vec2 u_Resolution; | |
| 9 | + | ||
| 10 | + | float speed = 5.0; | |
| 11 | + | float height = 1.0; | |
| 12 | + | float radius = 8.0; | |
| 13 | + | ||
| 14 | + | void main() | |
| 15 | + | { | |
| 16 | + | float r = 255.0 / 255.0; | |
| 17 | + | float g = 255.0 / 255.0; | |
| 18 | + | float b = 255.0 / 255.0; | |
| 19 | + | ||
| 20 | + | float modSpeed = 0.8; | |
| 21 | + | float mode = abs(0.5 - mod(u_Time * modSpeed, 1.0)) * 1.5; | |
| 22 | + | ||
| 23 | + | gl_FragColor = texture2D(u_Tex0, v_TexCoord); | |
| 24 | + | vec4 texcolor = texture2D(u_Tex0, v_TexCoord2); | |
| 25 | + | vec4 texcolor2 = texture2D(u_Tex0, v_TexCoord3); | |
| 26 | + | if(texcolor.r > 0.9) { | |
| 27 | + | gl_FragColor *= texcolor.g > 0.9 ? u_Color[0] : u_Color[1]; | |
| 28 | + | } else if(texcolor.g > 0.9) { | |
| 29 | + | gl_FragColor *= u_Color[2]; | |
| 30 | + | } else if(texcolor.b > 0.9) { | |
| 31 | + | gl_FragColor *= u_Color[3]; | |
| 32 | + | } | |
| 33 | + | ||
| 34 | + | if(gl_FragColor.a < 0.01) { | |
| 35 | + | if(texcolor2.a > 0.01) { | |
| 36 | + | gl_FragColor = vec4(r, g, b, mode); | |
| 37 | + | } else { | |
| 38 | + | discard; | |
| 39 | + | } | |
| 40 | + | } | |
| 41 | + | ||
| 42 | + | if(texcolor.a > 0.9) { | |
| 43 | + | gl_FragColor.xyz *= max(1.0, height / sqrt(abs(abs(sqrt(v_Position.x * v_Position.x + v_Position.y * v_Position.y) / 8.0) - abs(mod(u_Time * speed, radius * 2.0) - radius)))); | |
| 44 | + | } | |
| 45 | + | if(gl_FragColor.a < 0.01) discard; | |
| 46 | + | } |
| @@ -0,0 +1,20 @@ | |||
| 1 | + | uniform float u_Time; | |
| 2 | + | uniform sampler2D u_Tex0; // game screen | |
| 3 | + | uniform sampler2D u_Tex1; // snow | |
| 4 | + | varying vec2 v_TexCoord; | |
| 5 | + | uniform vec2 u_WalkOffset; | |
| 6 | + | ||
| 7 | + | vec2 snowDirection = vec2(0.5, 1.0); | |
| 8 | + | float snowSpeed = 0.08; | |
| 9 | + | float snowPressure = 0.4; | |
| 10 | + | float snowZoom = 0.1; | |
| 11 | + | ||
| 12 | + | void main(void) | |
| 13 | + | { | |
| 14 | + | vec3 Game = texture2D(u_Tex0, v_TexCoord).xyz; | |
| 15 | + | vec2 SnowHandler = (v_TexCoord + vec2(u_WalkOffset.x, u_WalkOffset.y) + (snowDirection * u_Time * snowSpeed)) / snowZoom; | |
| 16 | + | vec3 Snow = texture2D(u_Tex1, SnowHandler).xyz; | |
| 17 | + | ||
| 18 | + | vec3 _output = Game + Snow * snowPressure; | |
| 19 | + | gl_FragColor = vec4(_output, 1.0); | |
| 20 | + | } |
| @@ -0,0 +1,17 @@ | |||
| 1 | + | uniform sampler2D u_Tex0; | |
| 2 | + | varying vec2 v_TexCoord; | |
| 3 | + | varying vec4 v_Color; | |
| 4 | + | ||
| 5 | + | void main() | |
| 6 | + | { | |
| 7 | + | vec2 texSize = vec2(textureSize(u_Tex0, 0)); | |
| 8 | + | vec2 step = 1.0 / texSize; | |
| 9 | + | ||
| 10 | + | vec4 color = texture2D(u_Tex0, v_TexCoord) * 0.2270270270; | |
| 11 | + | color += texture2D(u_Tex0, v_TexCoord + vec2(step.x * 1.3846153846, step.y * 1.3846153846)) * 0.3162162162; | |
| 12 | + | color += texture2D(u_Tex0, v_TexCoord - vec2(step.x * 1.3846153846, step.y * 1.3846153846)) * 0.3162162162; | |
| 13 | + | color += texture2D(u_Tex0, v_TexCoord + vec2(step.x * 3.2307692308, step.y * 3.2307692308)) * 0.0702702703; | |
| 14 | + | color += texture2D(u_Tex0, v_TexCoord - vec2(step.x * 3.2307692308, step.y * 3.2307692308)) * 0.0702702703; | |
| 15 | + | ||
| 16 | + | gl_FragColor = color * v_Color; | |
| 17 | + | } |
| @@ -0,0 +1,16 @@ | |||
| 1 | + | attribute vec2 a_TexCoord; | |
| 2 | + | attribute vec2 a_Vertex; | |
| 3 | + | uniform mat3 u_TextureMatrix; | |
| 4 | + | uniform mat3 u_TransformMatrix; | |
| 5 | + | uniform mat3 u_ProjectionMatrix; | |
| 6 | + | varying vec2 v_TexCoord; | |
| 7 | + | ||
| 8 | + | vec4 calculatePosition() { | |
| 9 | + | return vec4(u_ProjectionMatrix * u_TransformMatrix * vec3(a_Vertex.xy, 1.0), 1.0); | |
| 10 | + | } | |
| 11 | + | ||
| 12 | + | void main() | |
| 13 | + | { | |
| 14 | + | gl_Position = calculatePosition(); | |
| 15 | + | v_TexCoord = (u_TextureMatrix * vec3(a_TexCoord,1.0)).xy; | |
| 16 | + | } |
| @@ -0,0 +1,31 @@ | |||
| 1 | + | uniform mat4 u_Color; | |
| 2 | + | varying vec2 v_TexCoord; | |
| 3 | + | varying vec2 v_TexCoord2; | |
| 4 | + | varying vec2 v_TexCoord3; | |
| 5 | + | uniform sampler2D u_Tex0; | |
| 6 | + | uniform float u_Time; | |
| 7 | + | uniform vec2 u_Resolution; | |
| 8 | + | ||
| 9 | + | void main() | |
| 10 | + | { | |
| 11 | + | gl_FragColor = texture2D(u_Tex0, v_TexCoord); | |
| 12 | + | vec4 texcolor = texture2D(u_Tex0, v_TexCoord2); | |
| 13 | + | vec4 texcolor2 = texture2D(u_Tex0, v_TexCoord3); | |
| 14 | + | if(texcolor.r > 0.9) { | |
| 15 | + | gl_FragColor *= texcolor.g > 0.9 ? u_Color[0] : u_Color[1]; | |
| 16 | + | } else if(texcolor.g > 0.9) { | |
| 17 | + | gl_FragColor *= u_Color[2]; | |
| 18 | + | } else if(texcolor.b > 0.9) { | |
| 19 | + | gl_FragColor *= u_Color[3]; | |
| 20 | + | } | |
| 21 | + | if(gl_FragColor.a < 0.01) { | |
| 22 | + | if(texcolor2.a > 0.01) { | |
| 23 | + | gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); | |
| 24 | + | float dist = length(gl_FragCoord.xy - u_Resolution / 2.0); | |
| 25 | + | float glow = 1.0 / (1.0 + pow(dist / 150.0, 2.0)); | |
| 26 | + | gl_FragColor.rgb += vec3(glow); | |
| 27 | + | } else { | |
| 28 | + | discard; | |
| 29 | + | } | |
| 30 | + | } | |
| 31 | + | } |
| @@ -0,0 +1,40 @@ | |||
| 1 | + | attribute vec2 a_TexCoord; | |
| 2 | + | uniform mat3 u_TextureMatrix; | |
| 3 | + | varying vec2 v_TexCoord; | |
| 4 | + | varying vec2 v_TexCoord2; | |
| 5 | + | varying vec2 v_TexCoord3; | |
| 6 | + | varying vec2 v_Position; | |
| 7 | + | attribute vec2 a_Vertex; | |
| 8 | + | uniform mat3 u_TransformMatrix; | |
| 9 | + | uniform mat3 u_ProjectionMatrix; | |
| 10 | + | uniform vec2 u_Offset; | |
| 11 | + | uniform vec2 u_Resolution; | |
| 12 | + | uniform vec2 u_Center; | |
| 13 | + | ||
| 14 | + | void main() | |
| 15 | + | { | |
| 16 | + | vec2 vertex = a_Vertex; | |
| 17 | + | vec2 text = a_TexCoord; | |
| 18 | + | vec2 text2 = a_TexCoord; | |
| 19 | + | if(vertex.x < u_Center.x) { | |
| 20 | + | vertex.x -= 1.0; | |
| 21 | + | text.x -= 1.0; | |
| 22 | + | } | |
| 23 | + | if(vertex.x > u_Center.x) { | |
| 24 | + | vertex.x += 1.0; | |
| 25 | + | text.x += 1.0; | |
| 26 | + | } | |
| 27 | + | if(vertex.y < u_Center.y) { | |
| 28 | + | vertex.y -= 1.0; | |
| 29 | + | text.y -= 1.0; | |
| 30 | + | } | |
| 31 | + | if(vertex.y > u_Center.y) { | |
| 32 | + | vertex.y += 1.0; | |
| 33 | + | text.y += 1.0; | |
| 34 | + | } | |
| 35 | + | gl_Position = vec4((u_ProjectionMatrix * u_TransformMatrix * vec3(vertex.xy, 1.0)).xy, 1.0, 1.0); | |
| 36 | + | v_Position = a_Vertex.xy - u_Center; | |
| 37 | + | v_TexCoord = (u_TextureMatrix * vec3(text,1.0)).xy; | |
| 38 | + | v_TexCoord2 = (u_TextureMatrix * vec3(text + u_Offset,1.0)).xy; | |
| 39 | + | v_TexCoord3 = (u_TextureMatrix * vec3(text2,1.0)).xy; | |
| 40 | + | } |
| @@ -0,0 +1,16 @@ | |||
| 1 | + | attribute vec2 a_Vertex; | |
| 2 | + | attribute vec2 a_TexCoord; | |
| 3 | + | uniform mat3 u_TextureMatrix; | |
| 4 | + | varying vec2 v_TexCoord; | |
| 5 | + | varying vec2 v_TexCoord2; | |
| 6 | + | uniform mat3 u_TransformMatrix; | |
| 7 | + | uniform mat3 u_ProjectionMatrix; | |
| 8 | + | uniform vec2 u_Offset; | |
| 9 | + | ||
| 10 | + | void main() | |
| 11 | + | { | |
| 12 | + | gl_Position = vec4((u_ProjectionMatrix * u_TransformMatrix * vec3(a_Vertex.xy, 1.0)).xy, 1.0, 1.0); | |
| 13 | + | v_TexCoord = (u_TextureMatrix * vec3(a_TexCoord,1.0)).xy; | |
| 14 | + | v_TexCoord2 = (u_TextureMatrix * vec3(a_TexCoord + u_Offset,1.0)).xy; | |
| 15 | + | } | |
| 16 | + |
| @@ -0,0 +1,13 @@ | |||
| 1 | + | uniform sampler2D u_Tex0; | |
| 2 | + | uniform float u_Time; | |
| 3 | + | varying vec2 v_TexCoord; | |
| 4 | + | ||
| 5 | + | vec2 tibiaDir = vec2(1.0, 1.0); | |
| 6 | + | void main(void) | |
| 7 | + | { | |
| 8 | + | vec2 dir = 0.5 - v_TexCoord; | |
| 9 | + | float dist = sqrt(dir.x * dir.x + dir.y * dir.y); | |
| 10 | + | float scale = 0.8 + dist * 0.5; | |
| 11 | + | vec4 color = texture2D(u_Tex0, -(dir * scale - 0.5)); | |
| 12 | + | gl_FragColor = color; | |
| 13 | + | } |