| @ -1,43 +0,0 @@ | |||||
| #version 330 | |||||
| in vec2 fragTexCoord; | |||||
| in vec4 fragTintColor; | |||||
| out vec4 fragColor; | |||||
| uniform sampler2D texture0; | |||||
| //uniform vec4 fragTintColor; | |||||
| // NOTE: Add here your custom variables | |||||
| void main() | |||||
| { | |||||
| vec4 sum = vec4(0); | |||||
| vec4 tc = vec4(0); | |||||
| for (int i = -4; i < 4; i++) | |||||
| { | |||||
| for (int j = -3; j < 3; j++) | |||||
| { | |||||
| sum += texture2D(texture0, fragTexCoord + vec2(j, i)*0.004) * 0.25; | |||||
| } | |||||
| } | |||||
| if (texture2D(texture0, fragTexCoord).r < 0.3) | |||||
| { | |||||
| tc = sum*sum*0.012 + texture2D(texture0, fragTexCoord); | |||||
| } | |||||
| else | |||||
| { | |||||
| if (texture2D(texture0, fragTexCoord).r < 0.5) | |||||
| { | |||||
| tc = sum*sum*0.009 + texture2D(texture0, fragTexCoord); | |||||
| } | |||||
| else | |||||
| { | |||||
| tc = sum*sum*0.0075 + texture2D(texture0, fragTexCoord); | |||||
| } | |||||
| } | |||||
| fragColor = tc; | |||||
| } | |||||
| @ -0,0 +1,26 @@ | |||||
| #version 100 | |||||
| // Input vertex attributes | |||||
| attribute vec3 vertexPosition; | |||||
| attribute vec2 vertexTexCoord; | |||||
| attribute vec3 vertexNormal; | |||||
| attribute vec4 vertexColor; | |||||
| // Input uniform values | |||||
| uniform mat4 mvpMatrix; | |||||
| // Output vertex attributes (to fragment shader) | |||||
| varying vec2 fragTexCoord; | |||||
| varying vec4 fragColor; | |||||
| // NOTE: Add here your custom variables | |||||
| void main() | |||||
| { | |||||
| // Send vertex attributes to fragment shader | |||||
| fragTexCoord = vertexTexCoord; | |||||
| fragColor = vertexColor; | |||||
| // Calculate final vertex position | |||||
| gl_Position = mvpMatrix*vec4(vertexPosition, 1.0); | |||||
| } | |||||
| @ -0,0 +1,37 @@ | |||||
| #version 100 | |||||
| precision mediump float; | |||||
| // Input vertex attributes (from vertex shader) | |||||
| varying vec2 fragTexCoord; | |||||
| varying vec4 fragColor; | |||||
| // Input uniform values | |||||
| uniform sampler2D texture0; | |||||
| uniform vec4 fragTintColor; | |||||
| // NOTE: Add here your custom variables | |||||
| void main() | |||||
| { | |||||
| vec4 sum = vec4(0); | |||||
| vec4 tc = vec4(0); | |||||
| for (int i = -4; i < 4; i++) | |||||
| { | |||||
| for (int j = -3; j < 3; j++) | |||||
| { | |||||
| sum += texture2D(texture0, fragTexCoord + vec2(j, i)*0.004) * 0.25; | |||||
| } | |||||
| } | |||||
| // Texel color fetching from texture sampler | |||||
| vec4 texelColor = texture(texture0, fragTexCoord); | |||||
| // Calculate final fragment color | |||||
| if (texelColor.r < 0.3) tc = sum*sum*0.012 + texelColor; | |||||
| else if (texelColor.r < 0.5) tc = sum*sum*0.009 + texelColor; | |||||
| else tc = sum*sum*0.0075 + texelColor; | |||||
| finalColor = tc; | |||||
| } | |||||
| @ -0,0 +1,25 @@ | |||||
| #version 100 | |||||
| precision mediump float; | |||||
| // Input vertex attributes (from vertex shader) | |||||
| varying vec2 fragTexCoord; | |||||
| varying vec4 fragColor; | |||||
| // Input uniform values | |||||
| uniform sampler2D texture0; | |||||
| uniform vec4 fragTintColor; | |||||
| // NOTE: Add here your custom variables | |||||
| void main() | |||||
| { | |||||
| // Texel color fetching from texture sampler | |||||
| vec4 texelColor = texture(texture0, fragTexCoord)*fragTintColor*fragColor; | |||||
| // Convert texel color to grayscale using NTSC conversion weights | |||||
| float gray = dot(texelColor.rgb, vec3(0.299, 0.587, 0.114)); | |||||
| // Calculate final fragment color | |||||
| gl_FragColor = vec4(gray, gray, gray, texelColor.a); | |||||
| } | |||||
| @ -0,0 +1,45 @@ | |||||
| #version 100 | |||||
| precision mediump float; | |||||
| // Input vertex attributes (from vertex shader) | |||||
| varying vec2 fragTexCoord; | |||||
| varying vec4 fragColor; | |||||
| // Input uniform values | |||||
| uniform sampler2D texture0; | |||||
| uniform vec4 fragTintColor; | |||||
| // NOTE: Add here your custom variables | |||||
| const float renderWidth = 800.0; // HARDCODED for example! | |||||
| const float renderHeight = 480.0; // Use uniforms instead... | |||||
| float radius = 250.0; | |||||
| float angle = 0.8; | |||||
| uniform vec2 center = vec2(200.0, 200.0); | |||||
| void main (void) | |||||
| { | |||||
| vec2 texSize = vec2(renderWidth, renderHeight); | |||||
| vec2 tc = fragTexCoord*texSize; | |||||
| tc -= center; | |||||
| float dist = length(tc); | |||||
| if (dist < radius) | |||||
| { | |||||
| float percent = (radius - dist)/radius; | |||||
| float theta = percent*percent*angle*8.0; | |||||
| float s = sin(theta); | |||||
| float c = cos(theta); | |||||
| tc = vec2(dot(tc, vec2(c, -s)), dot(tc, vec2(s, c))); | |||||
| } | |||||
| tc += center; | |||||
| vec3 color = texture2D(texture0, tc/texSize).rgb; | |||||
| gl_FragColor = vec4(color, 1.0);; | |||||
| } | |||||
| @ -1,21 +1,26 @@ | |||||
| #version 330 | #version 330 | ||||
| // Input vertex attributes | |||||
| in vec3 vertexPosition; | in vec3 vertexPosition; | ||||
| in vec2 vertexTexCoord; | in vec2 vertexTexCoord; | ||||
| in vec3 vertexNormal; | in vec3 vertexNormal; | ||||
| in vec4 vertexColor; | in vec4 vertexColor; | ||||
| out vec2 fragTexCoord; | |||||
| out vec4 fragTintColor; | |||||
| // Input uniform values | |||||
| uniform mat4 mvpMatrix; | uniform mat4 mvpMatrix; | ||||
| // Output vertex attributes (to fragment shader) | |||||
| out vec2 fragTexCoord; | |||||
| out vec4 fragColor; | |||||
| // NOTE: Add here your custom variables | // NOTE: Add here your custom variables | ||||
| void main() | void main() | ||||
| { | { | ||||
| // Send vertex attributes to fragment shader | |||||
| fragTexCoord = vertexTexCoord; | fragTexCoord = vertexTexCoord; | ||||
| fragTintColor = vertexColor; | |||||
| fragColor = vertexColor; | |||||
| // Calculate final vertex position | |||||
| gl_Position = mvpMatrix*vec4(vertexPosition, 1.0); | gl_Position = mvpMatrix*vec4(vertexPosition, 1.0); | ||||
| } | } | ||||
| @ -0,0 +1,38 @@ | |||||
| #version 330 | |||||
| // Input vertex attributes (from vertex shader) | |||||
| in vec2 fragTexCoord; | |||||
| in vec4 fragColor; | |||||
| // Input uniform values | |||||
| uniform sampler2D texture0; | |||||
| uniform vec4 fragTintColor; | |||||
| // Output fragment color | |||||
| out vec4 finalColor; | |||||
| // NOTE: Add here your custom variables | |||||
| void main() | |||||
| { | |||||
| vec4 sum = vec4(0); | |||||
| vec4 tc = vec4(0); | |||||
| for (int i = -4; i < 4; i++) | |||||
| { | |||||
| for (int j = -3; j < 3; j++) | |||||
| { | |||||
| sum += texture2D(texture0, fragTexCoord + vec2(j, i)*0.004)*0.25; | |||||
| } | |||||
| } | |||||
| // Texel color fetching from texture sampler | |||||
| vec4 texelColor = texture(texture0, fragTexCoord); | |||||
| // Calculate final fragment color | |||||
| if (texelColor.r < 0.3) tc = sum*sum*0.012 + texelColor; | |||||
| else if (texelColor.r < 0.5) tc = sum*sum*0.009 + texelColor; | |||||
| else tc = sum*sum*0.0075 + texelColor; | |||||
| finalColor = tc; | |||||
| } | |||||
| @ -0,0 +1,26 @@ | |||||
| #version 330 | |||||
| // Input vertex attributes (from vertex shader) | |||||
| in vec2 fragTexCoord; | |||||
| in vec4 fragColor; | |||||
| // Input uniform values | |||||
| uniform sampler2D texture0; | |||||
| uniform vec4 fragTintColor; | |||||
| // Output fragment color | |||||
| out vec4 finalColor; | |||||
| // NOTE: Add here your custom variables | |||||
| void main() | |||||
| { | |||||
| // Texel color fetching from texture sampler | |||||
| vec4 texelColor = texture(texture0, fragTexCoord)*fragTintColor*fragColor; | |||||
| // Convert texel color to grayscale using NTSC conversion weights | |||||
| float gray = dot(texelColor.rgb, vec3(0.299, 0.587, 0.114)); | |||||
| // Calculate final fragment color | |||||
| finalColor = vec4(gray, gray, gray, texelColor.a); | |||||
| } | |||||
| @ -1,6 +1,6 @@ | |||||
| #version 330 | #version 330 | ||||
| // Vertex shader input data | |||||
| // Input vertex attributes (from vertex shader) | |||||
| in vec2 fragTexCoord; | in vec2 fragTexCoord; | ||||
| in vec3 fragNormal; | in vec3 fragNormal; | ||||
| @ -1,25 +1,25 @@ | |||||
| #version 330 | #version 330 | ||||
| // Vertex input data | |||||
| // Input vertex attributes | |||||
| in vec3 vertexPosition; | in vec3 vertexPosition; | ||||
| in vec2 vertexTexCoord; | in vec2 vertexTexCoord; | ||||
| in vec3 vertexNormal; | in vec3 vertexNormal; | ||||
| // Projection and model data | |||||
| // Input uniform values | |||||
| uniform mat4 mvpMatrix; | uniform mat4 mvpMatrix; | ||||
| uniform mat4 modelMatrix; | |||||
| //uniform mat4 viewMatrix; // Not used | |||||
| // Attributes to fragment shader | |||||
| // Output vertex attributes (to fragment shader) | |||||
| out vec2 fragTexCoord; | out vec2 fragTexCoord; | ||||
| out vec3 fragNormal; | out vec3 fragNormal; | ||||
| // NOTE: Add here your custom variables | |||||
| uniform mat4 modelMatrix; | |||||
| void main() | void main() | ||||
| { | { | ||||
| // Send texture coord to fragment shader | |||||
| // Send vertex attributes to fragment shader | |||||
| fragTexCoord = vertexTexCoord; | fragTexCoord = vertexTexCoord; | ||||
| // Calculate view vector normal from model | // Calculate view vector normal from model | ||||
| mat3 normalMatrix = transpose(inverse(mat3(modelMatrix))); | mat3 normalMatrix = transpose(inverse(mat3(modelMatrix))); | ||||
| fragNormal = normalize(normalMatrix*vertexNormal); | fragNormal = normalize(normalMatrix*vertexNormal); | ||||
| @ -1,20 +0,0 @@ | |||||
| #version 330 | |||||
| in vec2 fragTexCoord; | |||||
| out vec4 fragColor; | |||||
| uniform sampler2D texture0; | |||||
| uniform vec4 fragTintColor; | |||||
| // NOTE: Add here your custom variables | |||||
| void main() | |||||
| { | |||||
| vec4 base = texture2D(texture0, fragTexCoord)*fragTintColor; | |||||
| // Convert to grayscale using NTSC conversion weights | |||||
| float gray = dot(base.rgb, vec3(0.299, 0.587, 0.114)); | |||||
| fragColor = vec4(gray, gray, gray, fragTintColor.a); | |||||
| } | |||||
| @ -1,18 +0,0 @@ | |||||
| #version 330 | |||||
| attribute vec3 vertexPosition; | |||||
| attribute vec2 vertexTexCoord; | |||||
| attribute vec4 vertexColor; | |||||
| uniform mat4 mvpMatrix; | |||||
| varying vec2 fragTexCoord; | |||||
| varying vec4 fragTintColor; | |||||
| void main() | |||||
| { | |||||
| fragTexCoord = vertexTexCoord; | |||||
| fragTintColor = vertexColor; | |||||
| gl_Position = mvpMatrix*vec4(vertexPosition, 1.0); | |||||
| } | |||||
| @ -1,15 +0,0 @@ | |||||
| #version 330 | |||||
| uniform sampler2D texture0; | |||||
| varying vec2 fragTexCoord; | |||||
| varying vec4 fragTintColor; | |||||
| void main() | |||||
| { | |||||
| vec4 base = texture2D(texture0, fragTexCoord)*fragTintColor; | |||||
| // Convert to grayscale using NTSC conversion weights | |||||
| float gray = dot(base.rgb, vec3(0.299, 0.587, 0.114)); | |||||
| gl_FragColor = vec4(gray, gray, gray, base.a); | |||||
| } | |||||