123456789101112131415161718192021222324252627282930 |
- precision highp float;
- // Uniforms
- uniform sampler2D baseSampler;
- uniform float size;
- // Varyings
- varying vec2 vUV;
- // Constants
- const vec3 LUMA_COEFFICIENT = vec3(0.2126, 0.7152, 0.0722);
- float lumaAtCoord(vec2 coord)
- {
- vec3 pixel = texture2D(baseSampler, coord).rgb;
- float luma = dot(pixel, LUMA_COEFFICIENT);
- return luma;
- }
- void main()
- {
- float lumaU0 = lumaAtCoord(vUV + vec2(-1.0, 0.0) / size);
- float lumaU1 = lumaAtCoord(vUV + vec2( 1.0, 0.0) / size);
- float lumaV0 = lumaAtCoord(vUV + vec2( 0.0, -1.0) / size);
- float lumaV1 = lumaAtCoord(vUV + vec2( 0.0, 1.0) / size);
- vec2 slope = (vec2(lumaU0 - lumaU1, lumaV0 - lumaV1) + 1.0) * 0.5;
- gl_FragColor = vec4(slope, 1.0, 1.0);
- }
|