This one doesn't even have BMF on it

      • PaX [comrade/them, they/them]M
        ·
        2 years ago
        moderate amount of GLSL
        // GLSL shader code for portraying different environments in a Hollywood movie.
        // Effects vary based on a switch statement that takes a country name.
        // Includes color desaturation effects that vary based on the country.
        
        uniform float time;
        uniform vec2 resolution;
        uniform sampler2D texture;
        
        void main() {
          vec2 uv = gl_FragCoord.xy / resolution.xy;
          
          // Switch statement for varying effects based on country name.
          switch(country_name) {
            case "USA":
              // USA-specific effects.
              vec3 color = texture2D(texture, uv).rgb;
              vec3 sepia_tint = vec3(0.9, 0.8, 0.7);
              vec3 final_color = mix(color, sepia_tint, 0.2);
              final_color = mix(final_color, vec3(dot(final_color, vec3(0.2126, 0.7152, 0.0722))), 0.2);
              
              // Color desaturation effect.
              final_color = mix(final_color, vec3(dot(final_color, vec3(0.2126, 0.7152, 0.0722))), 0.2);
              gl_FragColor = vec4(final_color, 1.0);
              break;
            case "China":
              // China-specific effects.
              vec3 color = texture2D(texture, uv).rgb;
              vec3 red_tint = vec3(1.0, 0.2, 0.1);
              vec3 gray = vec3(0.3, 0.3, 0.3);
              vec3 final_color = mix(color, gray, 0.5);
              final_color = mix(final_color, red_tint, 0.2);
              final_color = mix(final_color, vec3(dot(final_color, vec3(0.2126, 0.7152, 0.0722))), 0.3);
              
              // Color desaturation effect.
              final_color = mix(final_color, vec3(dot(final_color, vec3(0.2126, 0.7152, 0.0722))), 0.3);
              gl_FragColor = vec4(final_color, 1.0);
              break;
            case "Russia":
              // Russia-specific effects.
              vec3 color = texture2D(texture, uv).rgb;
              vec3 gray = vec3(0.3, 0.3, 0.3);
              vec3 cold_tint = vec3(0.7, 0.8, 0.9);
              vec3 final_color = mix(color, gray, 0.4);
              final_color = mix(final_color, cold_tint, 0.2);
              final_color = mix(final_color, vec3(dot(final_color, vec3(0.2126, 0.7152, 0.0722))), 0.4);
              
              // Color desaturation effect.
              final_color = mix(final_color, vec3(dot(final_color, vec3(0.2126, 0.7152, 0.0722))), 0.4);
              gl_FragColor = vec4(final_color, 1.0);
              break;
            default:
              // Default effects.
              gl_FragColor = texture2D(texture, uv);
              break;
          }
        }