blob: c03fbf6257d5547a5642770a447a317b8bff32ef [file] [log] [blame]
var shaders = {}
shaders["base_effect_shader_vert"] = "// base_effect_shader.vert\nattribute vec4 a_position;\nvarying vec2 v_texCoord;\nattribute vec2 a_texCoord;\nvoid main() {\n vec4 zeroToOne = a_position / 1.0;\n vec4 zeroToTwo = zeroToOne * 2.0;\n vec4 clipSpace = zeroToTwo - 1.0;\n gl_Position = vec4(clipSpace);\n v_texCoord = a_texCoord;\n}";
shaders["base_layer_shader_vert"] = "// base_layer_shader.vert\nattribute vec4 a_position;\nuniform mat4 uMatrix;\nuniform mat4 localMatrix;\nvoid main() {\n gl_Position = uMatrix * localMatrix * a_position;\n}";
shaders["base_layer_with_mask_shader_vert"] = "// base_layer_with_mask_shader.vert\nattribute vec4 a_position;\nuniform mat4 uMatrix;\nuniform mat4 localMatrix;\nvarying vec2 v_texCoord;\nattribute vec2 a_texCoord;\nvoid main() {\n gl_Position = uMatrix * localMatrix * a_position;\n v_texCoord = a_texCoord;\n}";
shaders["comp_layer_shader_frag"] = "// comp_layer_shader.frag\nprecision mediump float;\nuniform sampler2D u_image;\nvarying vec2 v_texCoord;\nvoid main() {\n gl_FragColor = texture2D(u_image, v_texCoord);\n}";
shaders["comp_layer_shader_vert"] = "// comp_layer_shader.vert\nattribute vec4 a_position;\nuniform mat4 uMatrix;\nuniform mat4 localMatrix;\nvarying vec2 v_texCoord;\nattribute vec2 a_texCoord;\nvoid main() {\n gl_Position = uMatrix * localMatrix * a_position;\n v_texCoord = a_texCoord;\n}";
shaders["gaussian_blur_shader_frag"] = "// gaussian_blur_shader.frag\nprecision mediump float;\nuniform sampler2D u_image;\nuniform float weights[100];\nuniform int blurriness;\nvarying vec2 vUv;\n\nvec4 calculateColorSum(vec2 onePixel) {\n // vec4 colorSum = vec4(0.0, 0.0, 0.0, 1.0);\n vec4 colorSum = vec4(0.0, 0.0, 0.0, 1.0);\n // vec4 colorSum = texture2D(u_image, vUv);\n for(int i = 0; i < 50; i += 1) {\n if(i >= blurriness / 2) {\n return colorSum;\n }\n colorSum += texture2D(u_image, vUv + onePixel * vec2(-1 * ((blurriness / 2) - i), 0)) * weights[i];\n colorSum += texture2D(u_image, vUv + onePixel * vec2(1 * ((blurriness / 2) - i), 0)) * weights[i];\n\n // colorSum += vec4(0.0, 1.0, 0.0, 1.0) * weights[i];\n // colorSum += vec4(0.0, 1.0, 0.0, 1.0) * weights[i];\n // colorSum += texture2D(u_image, vUv) * weights[i];\n // colorSum += texture2D(u_image, vUv + onePixel * vec2(1 * ((blurriness / 2) - i), 0)) * weights[i];\n /* vec4 texturePoint = texture2D(u_image, vUv);\n if(texturePoint.r == 1.0) {\n colorSum = vec4(0.0, 0.0, 1.0, 1.0);\n } */\n }\n return colorSum;\n}\n\nvoid main() {\n vec2 u_textureSize = vec2(1200.0 * 2.5, 600.0 * 2.5);\n vec2 onePixel = vec2(1.0, 0.0) / u_textureSize;\n gl_FragColor = calculateColorSum(onePixel);\n // gl_FragColor = texture2D(u_image, vUv);\n}";
shaders["gaussian_blur_shader_vert"] = "// gaussian_blur_shader.vert\nattribute vec4 a_position;\nattribute vec2 a_texCoord;\nvarying vec2 v_texCoord;\nvarying vec2 vUv;\nvoid main() {\n vec4 zeroToOne = a_position / 1.0;\n vec4 zeroToTwo = zeroToOne * 2.0;\n vec4 clipSpace = zeroToTwo - 1.0;\n gl_Position = vec4(clipSpace);\n vUv = a_texCoord;\n}";
shaders["image_layer_shader_frag"] = "// image_layer_shader.frag\nprecision mediump float;\nuniform sampler2D u_image;\nvarying vec2 v_texCoord;\nvoid main() {\n gl_FragColor = texture2D(u_image, v_texCoord);\n}";
shaders["image_layer_shader_vert"] = "// image_layer_shader.vert\nattribute vec3 a_position;\nuniform mat4 uMatrix;\nuniform mat4 localMatrix;\nvarying vec2 v_texCoord;\nvoid main() {\n gl_Position = uMatrix * localMatrix * vec4(a_position, 1);\n v_texCoord = a_position.xy;\n}";
shaders["mask_shader_frag"] = "// mask_shader.frag\nprecision mediump float;\nuniform sampler2D original_image;\nuniform sampler2D mask_image;\nvarying vec2 v_texCoord;\nvoid main() {\n vec4 original_color = texture2D(original_image, v_texCoord);\n vec4 mask_color = texture2D(mask_image, v_texCoord);\n gl_FragColor = vec4(original_color.rgb, mask_color.a * original_color.a);\n}";
shaders["mask_shader_vert"] = "// mask_shader.vert\nattribute vec4 a_position;\nvarying vec2 v_texCoord;\nattribute vec2 a_texCoord;\nvoid main() {\n vec4 zeroToOne = a_position / 1.0;\n vec4 zeroToTwo = zeroToOne * 2.0;\n vec4 clipSpace = zeroToTwo - 1.0;\n gl_Position = vec4(clipSpace);\n v_texCoord = a_texCoord;\n}";
shaders["noop_effect_shader_frag"] = "// noop_effect_shader.frag\nprecision mediump float;\nvoid main() {\n gl_FragColor = vec4(1.0,1.0,0.0,1.0);\n}";
shaders["puppet_pin_shader_frag"] = "// puppet_pin_shader.frag\nprecision mediump float;\nuniform sampler2D u_image;\nvarying vec2 v_texCoord;\nvoid main() {\n gl_FragColor = texture2D(u_image, v_texCoord);\n}";
shaders["puppet_pin_shader_vert"] = "// puppet_pin_shader.vert\nattribute vec4 a_position;\nvarying vec2 v_texCoord;\nattribute vec2 a_texCoord;\nvoid main() {\n vec4 zeroToTwo = a_position * 2.0;\n vec4 clipSpace = zeroToTwo - 1.0;\n gl_Position = vec4(clipSpace);\n v_texCoord = a_texCoord;\n}";
shaders["ripple_shader_frag"] = "// ripple_shader.frag\nprecision mediump float;\nuniform sampler2D u_image;\nvarying vec2 vUv;\n\nvec2 fromPolar( vec2 uv ) {\n uv = vec2( uv.x * cos( uv.y ), uv.x * sin( uv.y ) );\n return uv + vec2( 0.5 );\n}\nvec2 toPolar( vec2 uv ) {\n uv -= vec2( 0.5 );\n return vec2( length( uv ), atan( uv.y, uv.x )); \n}\n\n\n//sqrt(pow(0.5,2) + pow(0.5,2)) * 2\nfloat diagonal = 1.4142;\nfloat PI = 3.141592;\nfloat wave_width = 9.0;\nfloat wave_height = 0.008;\n\nvoid main() {\n vec2 vUv_1 = vUv;\n vUv_1 = toPolar(vUv_1);\n float angle = (vUv_1.y + PI) * 180.0 / PI;\n float segment = mod(angle, wave_width);\n float segment_perc = segment / wave_width;\n vUv_1.x += wave_height * sin(PI * segment_perc);\n //vUv_1.x += vUv_1.x;\n vec2 cart_vUv_1 = fromPolar(vUv_1);\n if(cart_vUv_1.x < 0.0 || cart_vUv_1.x > 1.0 || cart_vUv_1.y < 0.0 || cart_vUv_1.y > 1.0) {\n discard;\n }\n if(segment_perc < 0.5) {\n }\n\n gl_FragColor = texture2D(u_image, cart_vUv_1);\n}";
shaders["ripple_shader_vert"] = "// ripple_shader.vert\nattribute vec4 a_position;\nattribute vec2 a_texCoord;\nvarying vec2 v_texCoord;\nvarying vec2 vUv;\nvoid main() {\n vec4 zeroToOne = a_position / 1.0;\n vec4 zeroToTwo = zeroToOne * 2.0;\n vec4 clipSpace = zeroToTwo - 1.0;\n gl_Position = vec4(clipSpace);\n vUv = a_texCoord;\n}";
shaders["solid_layer_shader_frag"] = "// solid_layer_shader.frag\nprecision mediump float;\nuniform vec4 colorUniform;\nvoid main() {\n gl_FragColor = colorUniform;\n}";
shaders["solid_layer_with_mask_shader_frag"] = "// solid_layer_with_mask_shader.frag\nprecision mediump float;\nuniform vec4 colorUniform;\nvarying vec2 v_texCoord;\nuniform sampler2D mask_image;\nvoid main() {\n vec4 mask_value = texture2D(mask_image, v_texCoord);\n gl_FragColor = vec4(colorUniform.rgb, mask_value.r);\n}";
shaders["spherize_shader_frag"] = "// spherize_shader.frag\nprecision mediump float;\nuniform sampler2D u_image;\nvarying vec2 vUv;\n\nvec2 fromPolar( vec2 uv ) {\n uv = vec2( uv.x * cos( uv.y ), uv.x * sin( uv.y ) );\n return uv + vec2( 0.5 );\n}\nvec2 toPolar( vec2 uv ) {\n uv -= vec2( 0.5 );\n return vec2( length( uv ), atan( uv.y, uv.x )); \n}\n\n\n//sqrt(pow(0.5,2) + pow(0.5,2)) * 2\nfloat diagonal = 1.4142;\nfloat PI = 3.141592;\nfloat wave_width = 9.0;\nfloat wave_height = 0.008;\n\nvoid main() {\n vec2 vUv_1 = toPolar(vUv);\n vUv_1.x += diagonal * sin(PI * vUv_1.x / diagonal);\n vUv_1 = fromPolar(vUv_1);\n\n gl_FragColor = texture2D(u_image, vUv_1);\n}";
shaders["tint_shader_frag"] = "// tint_shader.frag\nprecision mediump float;\nuniform sampler2D u_image;\nvarying vec2 v_texCoord;\nuniform float color_amount;\nuniform vec4 whiteToColor;\nuniform vec4 blackToColor;\n\nvoid main() {\n vec4 textureValue = texture2D(u_image, v_texCoord);\n float saturation = (textureValue.r + textureValue.g + textureValue.b) / 3.0;\n vec4 textureMapped = blackToColor + (whiteToColor - blackToColor) * saturation;\n gl_FragColor = vec4(mix(textureValue.rgb, textureMapped.rgb, color_amount),textureValue.a);\n}";
shaders["track_matte_shader_frag"] = "// track_matte_shader.frag\nprecision mediump float;\nuniform sampler2D original_image;\nuniform sampler2D mask_image;\nuniform float matte_type;\nvarying vec2 v_texCoord;\nvarying vec2 v_texCoord_mask;\nvoid main() {\n vec4 original_vec = texture2D(original_image, v_texCoord);\n vec4 mask_vec = texture2D(mask_image, v_texCoord_mask);\n //vec4 mask_vec = texture2D(mask_image, v_texCoord_mask);\n float multiplier;\n if(v_texCoord_mask.x < 0.0 || v_texCoord_mask.y < 0.0 || v_texCoord_mask.x > 1.0 || v_texCoord_mask.y > 1.0) {\n if(matte_type == 1.0 || matte_type == 3.0 || matte_type == 4.0) {\n multiplier = 0.0;\n } else if(matte_type == 2.0) {\n multiplier = 1.0;\n }\n } else {\n if(matte_type == 1.0) {\n multiplier = mask_vec.a;\n } else if(matte_type == 2.0) {\n multiplier = 1.0 - mask_vec.a;\n } else if(matte_type == 3.0) {\n multiplier = (mask_vec.r + mask_vec.g + mask_vec.b) / 3.0;\n //multiplier = 0.2126*mask_vec.r + 0.7152*mask_vec.g + 0.0722*mask_vec.b;\n //multiplier = 0.299*mask_vec.r + 0.587*mask_vec.g + 0.114*mask_vec.b;\n // multiplier = 0.33*mask_vec.r + 0.5*mask_vec.g + 0.16*mask_vec.b;\n } else if(matte_type == 4.0) {\n multiplier = 1.0 - (mask_vec.r + mask_vec.g + mask_vec.b) / 3.0;\n } \n //gl_FragColor = mask_vec;\n }\n gl_FragColor = vec4(original_vec.rgb,multiplier * original_vec.a);\n // gl_FragColor = texture2D(mask_image, v_texCoord);\n //gl_FragColor = vec4(texture2D(u_image, v_texCoord).rgb,0.5);\n //gl_FragColor = mix(original_vec,mask_vec,0.5);\n // gl_FragColor = vec4(original_vec.rgb, 0.25);\n //gl_FragColor = vec4(1.0,0.0,0.0,0.75);\n}";
shaders["track_matte_shader_vert"] = "// track_matte_shader.vert\nattribute vec4 a_position;\nuniform mat4 uMatrix;\n// TODO: Look into using a vec4 for both pairs of coords\nvarying vec2 v_texCoord;\nvarying vec2 v_texCoord_mask;\nattribute vec2 a_texCoord;\nvoid main() {\n gl_Position = a_position;\n vec4 zeroToOne = a_position;\n vec4 zeroToTwo = zeroToOne * 2.0;\n vec4 clipSpace = zeroToTwo - 1.0;\n gl_Position = clipSpace;\n //gl_Position = a_position;\n v_texCoord = a_texCoord;\n v_texCoord_mask = (uMatrix * vec4(a_texCoord,1,1)).xy;\n}";
shaders["twirl_shader_frag"] = "// twirl_shader.frag\nprecision mediump float;\nuniform sampler2D u_image;\nvarying vec2 vUv;\nuniform float angle;\nuniform float radius;\nuniform vec2 center;\n\nvec2 fromPolar( vec2 uv ) {\n uv = vec2( uv.x * cos( uv.y ), uv.x * sin( uv.y ) );\n return uv + vec2( 0.5 ) + center;\n}\nvec2 toPolar( vec2 uv ) {\n uv -= vec2( 0.5 ) + center;\n return vec2( length( uv ), atan( uv.y, uv.x )); \n}\n\nfloat diagonal = 1.4142; //sqrt(pow(0.5, 2.0) + pow(0.5, 2.0)) * 2.0;\n\nvoid main() {\n vec2 vUv_1 = toPolar(vUv);\n if(vUv_1.x < diagonal * radius) {\n float perc = vUv_1.x / (diagonal * radius);\n perc = (cos(perc * 3.141592) + 1.0) / 2.0;\n vUv_1.y += radians(-angle * perc);\n }\n vec2 cart_vUv_1 = fromPolar(vUv_1);\n if(cart_vUv_1.x < 0.0 || cart_vUv_1.x > 1.0 || cart_vUv_1.y < 0.0 || cart_vUv_1.y > 1.0) {\n discard;\n } else {\n gl_FragColor = texture2D(u_image, cart_vUv_1);\n }\n}";
shaders["twirl_shader_vert"] = "// twirl_shader.vert\nattribute vec4 a_position;\nattribute vec2 a_texCoord;\nvarying vec2 v_texCoord;\nvarying vec2 vUv;\nvoid main() {\n vec4 zeroToOne = a_position / 1.0;\n vec4 zeroToTwo = zeroToOne * 2.0;\n vec4 clipSpace = zeroToTwo - 1.0;\n gl_Position = vec4(clipSpace);\n vUv = a_texCoord;\n}";
function get_shader(name) {
return shaders[name];
}