diff --git a/.config/hypr/shaders/chromatic_abberation.frag b/.config/hypr/shaders/chromatic_abberation.frag deleted file mode 100644 index 5389241cd..000000000 --- a/.config/hypr/shaders/chromatic_abberation.frag +++ /dev/null @@ -1,24 +0,0 @@ -// vim: set ft=glsl: - -precision highp float; -varying highp vec2 v_texcoord; -uniform highp sampler2D tex; - -#define STRENGTH 0.0027 - -void main() { - vec2 center = vec2(0.5, 0.5); - vec2 offset = (v_texcoord - center) * STRENGTH; - - float rSquared = dot(offset, offset); - float distortion = 1.0 + 1.0 * rSquared; - vec2 distortedOffset = offset * distortion; - - vec2 redOffset = vec2(distortedOffset.x, distortedOffset.y); - vec2 blueOffset = vec2(distortedOffset.x, distortedOffset.y); - - vec4 redColor = texture2D(tex, v_texcoord + redOffset); - vec4 blueColor = texture2D(tex, v_texcoord + blueOffset); - - gl_FragColor = vec4(redColor.r, texture2D(tex, v_texcoord).g, blueColor.b, 1.0); -} diff --git a/.config/hypr/shaders/crt.frag b/.config/hypr/shaders/crt.frag deleted file mode 100644 index a37ff9fb2..000000000 --- a/.config/hypr/shaders/crt.frag +++ /dev/null @@ -1,511 +0,0 @@ -#version 100 -precision highp float; -varying highp vec2 v_texcoord; -varying highp vec3 v_pos; -uniform highp sampler2D tex; -uniform lowp float time; - -#define BORDER_COLOR vec4(vec3(0.0, 0.0, 0.0), 1.0) // black border -#define BORDER_RADIUS 1.0 // larger vignette radius -#define BORDER_SIZE 0.01 // small border size -#define CHROMATIC_ABERRATION_STRENGTH 0.00 -#define DENOISE_INTENSITY 0.0001 // -#define DISTORTION_AMOUNT 0.00 // moderate distortion amount -#define HDR_BLOOM 0.75 // bloom intensity -#define HDR_BRIGHTNESS 0.011 // brightness -#define HDR_CONTRAST 0.011 // contrast -#define HDR_SATURATION 1.0// saturation -#define LENS_DISTORTION_AMOUNT 0.0 -#define NOISE_THRESHOLD 0.0001 -#define PHOSPHOR_BLUR_AMOUNT 0.77 // Amount of blur for phosphor glow -#define PHOSPHOR_GLOW_AMOUNT 0.77 // Amount of phosphor glow -#define SAMPLING_RADIUS 0.0001 -#define SCANLINE_FREQUENCY 540.0 -#define SCANLINE_THICKNESS 0.0507 -#define SCANLINE_TIME time * 471.24 -#define SHARPNESS 0.25 -#define SUPERSAMPLING_SAMPLES 16.0 -#define VIGNETTE_RADIUS 0.0 // larger vignette radius -#define PI 3.14159265359 -#define TWOPI 6.28318530718 - -vec2 applyBarrelDistortion(vec2 coord, float amt) { - vec2 p = coord.xy / vec2(1.0); - vec2 v = p * 2.0 - vec2(1.0); - float r = dot(v, v); - float k = 1.0 + pow(r, 2.0) * pow(amt, 2.0); - vec2 result = v * k; - return vec2(0.5, 0.5) + 0.5 * result.xy; -} - -vec4 applyColorCorrection(vec4 color) { - color.rgb *= vec3(1.0, 0.79, 0.89); - return vec4(color.rgb, 1.0); -} - -vec4 applyBorder(vec2 tc, vec4 color, float borderSize, vec4 borderColor) { - float dist_x = min(tc.x, 1.0 - tc.x); - float dist_y = min(tc.y, 1.0 - tc.y); - float dist = min(dist_x, dist_y) * -1.0; - float border = smoothstep(borderSize, 0.0, dist); - border += smoothstep(borderSize, 0.0, dist); - return mix(color, borderColor, border); -} - -vec4 applyFakeHDR(vec4 color, float brightness, float contrast, float saturation, float bloom) { - color.rgb = (color.rgb - vec3(0.5)) * exp2(brightness) + vec3(0.5); - vec3 crtfactor = vec3(1.05, 0.92, 1.0); - color.rgb = pow(color.rgb, crtfactor); - // // NTSC - // vec3 lumCoeff = vec3(0.2125, 0.7154, 0.0721); - - // // BT.709 - // vec3 lumCoeff = vec3(0.299, 0.587, 0.114); - - // BT.2020 - vec3 lumCoeff = vec3(0.2627, 0.6780, 0.0593); - - // // Warm NTSC - // vec3 lumCoeff = vec3(0.2125, 0.7010, 0.0865); - - float luminance = dot(color.rgb, lumCoeff); - luminance = pow(luminance, 2.2); - color.rgb = mix(vec3(luminance), color.rgb, saturation); - color.rgb = mix(color.rgb, vec3(1.0), pow(max(0.0, luminance - 1.0 + bloom), 4.0)); - return color; -} - -vec4 applyVignette(vec4 color) { - vec2 center = vec2(0.5, 0.5); // center of screen - float radius = VIGNETTE_RADIUS; // radius of vignette effect - float softness = 1.0; // softness of vignette effect - float intensity = 0.7; // intensity of vignette effect - vec2 offset = v_texcoord - center; // offset from center of screen - float distance = length(offset); // distance from center of screen - float alpha = smoothstep(radius, radius - radius * softness, distance) * intensity; // calculate alpha value for vignette effect - return mix(vec4(0.0, 0.0, 0.0, alpha), color, alpha); // mix black with color using calculated alpha value -} - -vec4 applyPhosphorGlow(vec2 tc, vec4 color, sampler2D tex) { - // Calculate average color value of the texture - vec4 texelColor = color; - float averageColor = (texelColor.r + texelColor.g + texelColor.b) / 3.0; - - // Determine brightness-dependent color factor - float factor = mix( - mix(0.09, - mix(0.005, 0.0075, (averageColor - 0.1) / 0.1), - step(0.01, averageColor)), 0.0005, - step(0.02, averageColor)); - // Apply phosphor glow effect - vec4 sum = vec4(0.0); - vec4 pixels[9]; - pixels[0] = texture2D(tex, tc - vec2(0.001, 0.001)); - pixels[1] = texture2D(tex, tc - vec2(0.001, 0.0)); - pixels[2] = texture2D(tex, tc - vec2(0.001, -0.001)); - pixels[3] = texture2D(tex, tc - vec2(0.0, 0.001)); - pixels[4] = texture2D(tex, tc); - pixels[5] = texture2D(tex, tc + vec2(0.001, 0.001)); - pixels[6] = texture2D(tex, tc + vec2(0.001, 0.0)); - pixels[7] = texture2D(tex, tc + vec2(0.001, -0.001)); - pixels[8] = texture2D(tex, tc + vec2(0.0, 0.001)); - -// Perform operations on input pixels in parallel - sum = pixels[0] - + pixels[1] - + pixels[2] - + pixels[3] - + pixels[4] - + pixels[5] - + pixels[6] - + pixels[7] - + pixels[8]; - sum /= 9.0; - sum += texture2D(tex, tc - vec2(0.01, 0.01)) * 0.001; - sum += texture2D(tex, tc - vec2(0.0, 0.01)) * 0.001; - sum += texture2D(tex, tc - vec2(-0.01, 0.01)) * 0.001; - sum += texture2D(tex, tc - vec2(0.01, 0.0)) * 0.001; - sum += color * PHOSPHOR_BLUR_AMOUNT; - sum += texture2D(tex, tc - vec2(-0.01, 0.0)) * 0.001; - sum += texture2D(tex, tc - vec2(0.01, -0.01)) * 0.001; - sum += texture2D(tex, tc - vec2(0.0, -0.01)) * 0.001; - sum += texture2D(tex, tc - vec2(-0.01, -0.01)) * 0.001; - sum *= PHOSPHOR_GLOW_AMOUNT; - - // Initialize sum_sum_factor to zero - vec4 sum_sum_factor = vec4(0.0); - // Compute sum_j for i = -1 - vec4 sum_j = vec4(0.0); - sum_j += texture2D(tex, tc + vec2(-1, -1) * 0.01); - sum_j += texture2D(tex, tc + vec2(0, -1) * 0.01); - sum_j += texture2D(tex, tc + vec2(1, -1) * 0.01); - sum_j += texture2D(tex, tc + vec2(-1, 0) * 0.01); - sum_j += texture2D(tex, tc + vec2(0, 0) * 0.01); - sum_j += texture2D(tex, tc + vec2(1, 0) * 0.01); - sum_j += texture2D(tex, tc + vec2(-1, 1) * 0.01); - sum_j += texture2D(tex, tc + vec2(0, 1) * 0.01); - sum_j += texture2D(tex, tc + vec2(1, 1) * 0.01); - sum_sum_factor += sum_j * vec4(0.011); - - // Compute sum_j for i = 0 - sum_j = vec4(0.0); - sum_j += texture2D(tex, tc + vec2(-1, 0) * 0.01); - sum_j += texture2D(tex, tc + vec2(0, 0) * 0.01); - sum_j += texture2D(tex, tc + vec2(1, 0) * 0.01); - sum_j += texture2D(tex, tc + vec2(-1, 1) * 0.01); - sum_j += texture2D(tex, tc + vec2(0, 1) * 0.01); - sum_j += texture2D(tex, tc + vec2(1, 1) * 0.01); - sum_sum_factor += sum_j * vec4(0.011); - - // Compute sum_j for i = 1 - sum_j = vec4(0.0); - sum_j += texture2D(tex, tc + vec2(-1, 0) * 0.01); - sum_j += texture2D(tex, tc + vec2(0, 1) * 0.01); - sum_j += texture2D(tex, tc + vec2(1, 0) * 0.01); - sum_j += texture2D(tex, tc + vec2(-1, 1) * 0.01); - sum_j += texture2D(tex, tc + vec2(0, 1) * 0.01); - sum_j += texture2D(tex, tc + vec2(1, 1) * 0.01); - sum_sum_factor += sum_j * vec4(0.011); - color += mix(sum_sum_factor * sum_sum_factor * vec4(factor), sum, 0.5); - return color; -} - -vec4 applyAdaptiveSharpen(vec2 tc, vec4 color, sampler2D tex) { - vec4 color_tl = texture2D(tex, tc + vec2(-1.0, -1.0) * 0.5 / 2160.0); - vec4 color_tr = texture2D(tex, tc + vec2(1.0, -1.0) * 0.5 / 2160.0); - vec4 color_bl = texture2D(tex, tc + vec2(-1.0, 1.0) * 0.5 / 2160.0); - vec4 color_br = texture2D(tex, tc + vec2(1.0, 1.0) * 0.5 / 2160.0); - float sharpness = SHARPNESS; - vec3 color_no_alpha = color.rgb; - vec3 color_tl_no_alpha = color_tl.rgb; - vec3 color_tr_no_alpha = color_tr.rgb; - vec3 color_bl_no_alpha = color_bl.rgb; - vec3 color_br_no_alpha = color_br.rgb; - float delta = (dot(color_no_alpha, vec3(0.333333)) + dot(color_tl_no_alpha, vec3(0.333333)) + dot(color_tr_no_alpha, vec3(0.333333)) + dot(color_bl_no_alpha, vec3(0.333333)) + dot(color_br_no_alpha, vec3(0.333333))) * 0.2 - dot(color_no_alpha, vec3(0.333333)); - vec3 sharp_color_no_alpha = color_no_alpha + min(vec3(0.0), vec3(delta * sharpness)); - vec4 sharp_color = vec4(sharp_color_no_alpha, color.a); - return sharp_color; -} - -vec4 applyScanlines(vec2 tc, vec4 color) { - float scanline = (cos(tc.y * SCANLINE_FREQUENCY + SCANLINE_TIME) * - sin(tc.y * SCANLINE_FREQUENCY + SCANLINE_TIME)) * SCANLINE_THICKNESS; - float alpha = clamp(1.0 - abs(scanline), 0.0, 1.0); - return vec4(color.rgb * alpha, color.a); -} - -vec4 applyChromaticAberration(vec2 uv, vec4 color) { - vec2 center = vec2(0.5, 0.5); // center of the screen - vec2 offset = (uv - center) * CHROMATIC_ABERRATION_STRENGTH; // calculate the offset from the center - - // apply lens distortion - float rSquared = dot(offset, offset); - float distortion = 1.0 + LENS_DISTORTION_AMOUNT * rSquared; - vec2 distortedOffset = offset * distortion; - - // apply chromatic aberration - vec2 redOffset = vec2(distortedOffset.x * 1.00, distortedOffset.y * 1.00); - vec2 blueOffset = vec2(distortedOffset.x * 1.00, distortedOffset.y * 1.00); - - vec4 redColor = texture2D(tex, uv + redOffset); - vec4 blueColor = texture2D(tex, uv + blueOffset); - - vec4 result = vec4(redColor.r, color.g, blueColor.b, color.a); - - return result; -} - -vec4 reduceGlare(vec4 color) { - // Calculate the intensity of the color by taking the average of the RGB components - float intensity = (color.r + color.g + color.b) / 3.0; - // Set the maximum intensity that can be considered for glare - float maxIntensity = 0.98; - // Use smoothstep to create a smooth transition from no glare to full glare - // based on the intensity of the color and the maximum intensity - float glareIntensity = smoothstep(maxIntensity - 0.02, maxIntensity, intensity); - // Set the amount of glare to apply to the color - float glareAmount = 0.02; - // Mix the original color with the reduced color that has glare applied to it - vec3 reducedColor = mix(color.rgb, vec3(glareIntensity), glareAmount); - // Return the reduced color with the original alpha value - return vec4(reducedColor, color.a); -} - -// Apply a fake HDR effect to the input color. -// Parameters: -// - inputColor: the color to apply the effect to. -// - brightness: the brightness of the image. Should be a value between 0 and 1. -// - contrast: the contrast of the image. Should be a value between 0 and 1. -// - saturation: the saturation of the image. Should be a value between 0 and 2. -// - bloom: the intensity of the bloom effect. Should be a value between 0 and 1. -vec4 applyFakeHDREffect(vec4 inputColor, float brightness, float contrast, float saturation, float bloom) { - const float minBrightness = 0.0; - const float maxBrightness = 1.0; - const float minContrast = 0.0; - const float maxContrast = 1.0; - const float minSaturation = 0.0; - const float maxSaturation = 2.0; - const float minBloom = 0.0; - const float maxBloom = 1.0; - - // Check input parameters for validity - if (brightness < minBrightness || brightness > maxBrightness) { - return vec4(0.0, 0.0, 0.0, 1.0); // Return black with alpha of 1.0 to indicate error - } - if (contrast < minContrast || contrast > maxContrast) { - return vec4(0.0, 0.0, 0.0, 1.0); - } - if (saturation < minSaturation || saturation > maxSaturation) { - return vec4(0.0, 0.0, 0.0, 1.0); - } - if (bloom < minBloom || bloom > maxBloom) { - return vec4(0.0, 0.0, 0.0, 1.0); - } - - // Apply brightness and contrast - vec3 color = inputColor.rgb; - color = (color - vec3(0.5)) * exp2(brightness * 10.0) + vec3(0.5); - color = mix(vec3(0.5), color, pow(contrast * 4.0 + 1.0, 2.0)); - - // // NTSC - // vec3 lumCoeff = vec3(0.2125, 0.7154, 0.0721); - - // // BT.709 - // vec3 lumCoeff = vec3(0.299, 0.587, 0.114); - - // // BT.2020 - // vec3 lumCoeff = vec3(0.2627, 0.6780, 0.0593); - - // Warm NTSC - vec3 lumCoeff = vec3(0.2125, 0.7010, 0.0865); - - // Apply saturation - float luminance = dot(color, lumCoeff); - vec3 grey = vec3(luminance); - color = mix(grey, color, saturation); - - // Apply bloom effect - float threshold = 1.0 - bloom; - vec3 bloomColor = max(color - threshold, vec3(0.0)); - bloomColor = pow(bloomColor, vec3(2.0)); - bloomColor = mix(vec3(0.0), bloomColor, pow(min(luminance, threshold), 4.0)); - color += bloomColor; - - return vec4(color, inputColor.a); -} - -vec4 bilateralFilter(sampler2D tex, vec2 uv, vec4 color, float sampleRadius, float noiseThreshold, float intensity) { - vec4 filteredColor = vec4(0.0); - float totalWeight = 0.0; - - // Top-left pixel - vec4 sample = texture2D(tex, uv + vec2(-1.0, -1.0)); - float dist = length(vec2(-1.0, -1.0)); - float colorDist = length(sample - color); - float weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); - filteredColor += sample * weight; - totalWeight += weight; - - // Top pixel - sample = texture2D(tex, uv + vec2(0.0, -1.0)); - dist = length(vec2(0.0, -1.0)); - colorDist = length(sample - color); - weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); - filteredColor += sample * weight; - totalWeight += weight; - - // Top-right pixel - sample = texture2D(tex, uv + vec2(1.0, -1.0)); - dist = length(vec2(1.0, -1.0)); - colorDist = length(sample - color); - weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); - filteredColor += sample * weight; - totalWeight += weight; - - // Left pixel - sample = texture2D(tex, uv + vec2(-1.0, 0.0)); - dist = length(vec2(-1.0, 0.0)); - colorDist = length(sample - color); - weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); - filteredColor += sample * weight; - totalWeight += weight; - - // Center pixel - sample = texture2D(tex, uv); - dist = 0.0; - colorDist = length(sample - color); - weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); - filteredColor += sample * weight; - totalWeight += weight; - - // Right pixel - sample = texture2D(tex, uv + vec2(1.0, 0.0)); - dist = length(vec2(1.0, 0.0)); - colorDist = length(sample - color); - weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); - filteredColor += sample * weight; - totalWeight += weight; - - // Bottom-left pixel - sample = texture2D(tex, uv + vec2(-1.0, 1.0)); - dist = length(vec2(-1.0, 1.0)); - colorDist = length(sample - color); - weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); - filteredColor += sample * weight; - totalWeight += weight; - -// Bottom pixel - sample = texture2D(tex, uv + vec2(0.0, sampleRadius)); - dist = length(vec2(0.0, sampleRadius)); - colorDist = length(sample - color); - weight = exp(-0.5 * (dist * dist + colorDist * colorDist * intensity) / (sampleRadius * sampleRadius)); - filteredColor += sample * weight; - totalWeight += weight; - - filteredColor /= totalWeight; - return mix(color, filteredColor, step(noiseThreshold, length(filteredColor - color))); -} - -vec4 supersample(sampler2D tex, vec2 uv, float sampleRadius, float noiseThreshold, float intensity) { - float radiusSq = sampleRadius * sampleRadius; - vec2 poissonDisk; - vec4 color = vec4(0.0); - - float r1_0 = sqrt(0.0 / 16.0); - float r2_0 = fract(1.0 / 3.0); - float theta_0 = TWOPI * r2_0; - poissonDisk = vec2(r1_0 * cos(theta_0), r1_0 * sin(theta_0)); - color += texture2D(tex, uv + poissonDisk * sampleRadius); - - float r1_1 = sqrt(1.0 / 16.0); - float r2_1 = fract(2.0 / 3.0); - float theta_1 = TWOPI * r2_1; - poissonDisk = vec2(r1_1 * cos(theta_1), r1_1 * sin(theta_1)); - color += texture2D(tex, uv + poissonDisk * sampleRadius); - - float r1_2 = sqrt(2.0 / 16.0); - float r2_2 = fract(3.0 / 3.0); - float theta_2 = TWOPI * r2_2; - poissonDisk = vec2(r1_2 * cos(theta_2), r1_2 * sin(theta_2)); - color += texture2D(tex, uv + poissonDisk * sampleRadius); - - float r1_3 = sqrt(3.0 / 16.0); - float r2_3 = fract(4.0 / 3.0); - float theta_3 = TWOPI * r2_3; - poissonDisk = vec2(r1_3 * cos(theta_3), r1_3 * sin(theta_3)); - color += texture2D(tex, uv + poissonDisk * sampleRadius); - - float r1_4 = sqrt(4.0 / 16.0); - float r2_4 = fract(5.0 / 3.0); - float theta_4 = TWOPI * r2_4; - poissonDisk = vec2(r1_4 * cos(theta_4), r1_4 * sin(theta_4)); - color += texture2D(tex, uv + poissonDisk * sampleRadius); - - float r1_5 = sqrt(5.0 / 16.0); - float r2_5 = fract(6.0 / 3.0); - float theta_5 = TWOPI * r2_5; - poissonDisk = vec2(r1_5 * cos(theta_5), r1_5 * sin(theta_5)); - color += texture2D(tex, uv + poissonDisk * sampleRadius); - - float r1_6 = sqrt(6.0 / 16.0); - float r2_6 = fract(7.0 / 3.0); - float theta_6 = TWOPI * r2_6; - poissonDisk = vec2(r1_6 * cos(theta_6), r1_6 * sin(theta_6)); - color += texture2D(tex, uv + poissonDisk * sampleRadius); - - float r1_7 = sqrt(7.0 / 16.0); - float r2_7 = fract(8.0 / 3.0); - float theta_7 = TWOPI * r2_7; - poissonDisk = vec2(r1_7 * cos(theta_7), r1_7 * sin(theta_7)); - color += texture2D(tex, uv + poissonDisk * sampleRadius); - - float r1_8 = sqrt(8.0 / 16.0); - float r2_8 = fract(9.0 / 3.0); - float theta_8 = TWOPI * r2_8; - poissonDisk = vec2(r1_8 * cos(theta_8), r1_8 * sin(theta_8)); - color += texture2D(tex, uv + poissonDisk * sampleRadius); - - float r1_9 = sqrt(9.0 / 16.0); - float r2_9 = fract(10.0 / 3.0); - float theta_9 = TWOPI * r2_9; - poissonDisk = vec2(r1_9 * cos(theta_9), r1_9 * sin(theta_9)); - color += texture2D(tex, uv + poissonDisk * sampleRadius); - - float r1_10 = sqrt(10.0 / 16.0); - float r2_10 = fract(11.0 / 3.0); - float theta_10 = TWOPI * r2_10; - poissonDisk = vec2(r1_10 * cos(theta_10), r1_10 * sin(theta_10)); - color += texture2D(tex, uv + poissonDisk * sampleRadius); - - float r1_11 = sqrt(11.0 / 16.0); - float r2_11 = fract(12.0 / 3.0); - float theta_11 = TWOPI * r2_11; - poissonDisk = vec2(r1_11 * cos(theta_11), r1_11 * sin(theta_11)); - color += texture2D(tex, uv + poissonDisk * sampleRadius); - - float r1_12 = sqrt(12.0 / 16.0); - float r2_12 = fract(13.0 / 3.0); - float theta_12 = TWOPI * r2_12; - poissonDisk = vec2(r1_12 * cos(theta_12), r1_12 * sin(theta_12)); - color += texture2D(tex, uv + poissonDisk * sampleRadius); - - float r1_13 = sqrt(13.0 / 16.0); - float r2_13 = fract(14.0 / 3.0); - float theta_13 = TWOPI * r2_13; - poissonDisk = vec2(r1_13 * cos(theta_13), r1_13 * sin(theta_13)); - color += texture2D(tex, uv + poissonDisk * sampleRadius); - - float r1_14 = sqrt(14.0 / 16.0); - float r2_14 = fract(15.0 / 3.0); - float theta_14 = TWOPI * r2_14; - poissonDisk = vec2(r1_14 * cos(theta_14), r1_14 * sin(theta_14)); - color += texture2D(tex, uv + poissonDisk * sampleRadius); - - float r1_15 = sqrt(15.0 / 16.0); - float r2_15 = fract(16.0 / 3.0); - float theta_15 = TWOPI * r2_15; - poissonDisk = vec2(r1_15 * cos(theta_15), r1_15 * sin(theta_15)); - color += texture2D(tex, uv + poissonDisk * sampleRadius); - - return bilateralFilter(tex, uv, color, sampleRadius, noiseThreshold, intensity); -} -void main() { - vec2 tc_no_dist = v_texcoord; - - vec2 tc = applyBarrelDistortion(tc_no_dist, DISTORTION_AMOUNT); - - // [-1, 1] - vec2 tc_no_dist_symmetric = tc_no_dist * 2.0 - 1.0; - - // [0,1] - vec2 tc_no_dist_normalized = (tc_no_dist_symmetric + 1.0) / 2.0; - - // vec4 color = texture2D(tex, tc); - vec4 color = supersample(tex, tc, SAMPLING_RADIUS, NOISE_THRESHOLD, DENOISE_INTENSITY); - - color = applyAdaptiveSharpen(tc, color, tex); - - color = applyPhosphorGlow(tc, color, tex); - - color = reduceGlare(color); - - color = mix(applyFakeHDREffect(color, HDR_BRIGHTNESS, HDR_CONTRAST, HDR_SATURATION, HDR_BLOOM), color, 0.5); - - color = applyColorCorrection(color); - - color /= SUPERSAMPLING_SAMPLES; - - color = mix(applyChromaticAberration(tc, color), color, 0.25); - - color = mix(color, applyVignette(color), 0.37); - - color = applyBorder(tc_no_dist_normalized, color, 1.0 - BORDER_SIZE * BORDER_RADIUS, BORDER_COLOR); - - color = mix(applyBorder(tc, color, BORDER_SIZE, BORDER_COLOR), color, 0.05); - - color = applyScanlines(tc, color); - - gl_FragColor = color; - gl_FragColor.a = 1.0; -} - diff --git a/.config/hypr/shaders/drugs.frag b/.config/hypr/shaders/drugs.frag deleted file mode 100644 index 1190ed03c..000000000 --- a/.config/hypr/shaders/drugs.frag +++ /dev/null @@ -1,42 +0,0 @@ - -precision highp float; -varying vec2 v_texcoord; -uniform sampler2D tex; -uniform float time; - -void warpco(inout vec2 tc) { - tc -= 0.5; - tc *= length(tc) * 2.0; - tc += 0.5; -} - -float rand1d(float seed) { - return sin(seed*1454.0); -} - -float rand2d(vec2 co) -{ - return fract(sin(dot(co.xy, vec2(12.9898,78.233))) * 43758.5453); -} - -vec3 rgb(in vec2 tc, float freq, float amp, inout vec4 centre) { - vec2 off = vec2(1.0/800.0, 0.0) * sin(tc.t * freq + time) * amp; - vec2 off2 = vec2(1.0/800.0, 0.0) * sin(tc.t * freq - time * 1.5) * amp; - centre = texture2D(tex, tc); - return vec3(texture2D(tex, tc-off).r, centre.g, texture2D(tex, tc+off2).b); -} - -void main() { - // vec2 px = 1.0 / textureSize(tex, 0).st; - vec2 tc = v_texcoord; - warpco(tc); - tc = mix(v_texcoord, tc, sin(time * 2.0)*0.07); - tc.x += rand2d(floor(tc * 20.0 + floor(time * 2.5))) * 0.01; - tc.x += rand1d(floor(tc.x * 40.0)) * 0.005 * rand1d(time * 0.001); - tc.y += sin(tc.x + time) * 0.02; - vec4 centre; - vec3 bent = rgb(tc, 100.0, 5.0, centre); - vec3 col = mix(centre.rgb, bent, sin(time)); - gl_FragColor = vec4(col, centre.a); - // gl_FragColor = vec4(texture2D(tex, v_texcoord)); -} \ No newline at end of file diff --git a/.config/hypr/shaders/extradark.frag b/.config/hypr/shaders/extradark.frag deleted file mode 100644 index 089ee8149..000000000 --- a/.config/hypr/shaders/extradark.frag +++ /dev/null @@ -1,21 +0,0 @@ -// vim: set ft=glsl: -// blue light filter shader -// values from https://reshade.me/forum/shader-discussion/3673-blue-light-filter-similar-to-f-lux - -precision mediump float; -varying vec2 v_texcoord; -uniform sampler2D tex; - -void main() { - - vec4 pixColor = texture2D(tex, v_texcoord); - - // red - pixColor[0] *= 0.7; - // green - pixColor[1] *= 0.6; - // blue - pixColor[2] *= 0.5; - - gl_FragColor = pixColor; -} diff --git a/.config/hypr/shaders/invert.frag b/.config/hypr/shaders/invert.frag deleted file mode 100644 index 864f7188c..000000000 --- a/.config/hypr/shaders/invert.frag +++ /dev/null @@ -1,13 +0,0 @@ -// vim: set ft=glsl: -// blue light filter shader -// values from https://reshade.me/forum/shader-discussion/3673-blue-light-filter-similar-to-f-lux - -precision mediump float; -varying vec2 v_texcoord; -uniform sampler2D tex; - -void main() { - vec4 pixColor = texture2D(tex, v_texcoord); - pixColor.rgb = 1.0 - pixColor.rgb; - gl_FragColor = pixColor; -} \ No newline at end of file diff --git a/.config/hypr/shaders/solarized.frag b/.config/hypr/shaders/solarized.frag deleted file mode 100644 index 1c37f2cc0..000000000 --- a/.config/hypr/shaders/solarized.frag +++ /dev/null @@ -1,41 +0,0 @@ -// -*- mode:c -*- -precision lowp float; -varying vec2 v_texcoord; -uniform sampler2D tex; - -float distanceSquared(vec3 pixColor, vec3 solarizedColor) { - vec3 distanceVector = pixColor - solarizedColor; - return dot(distanceVector, distanceVector); -} - -void main() { - vec3 solarized[16]; - solarized[0] = vec3(0.,0.169,0.212); - solarized[1] = vec3(0.027,0.212,0.259); - solarized[2] = vec3(0.345,0.431,0.459); - solarized[3] = vec3(0.396,0.482,0.514); - solarized[4] = vec3(0.514,0.58,0.588); - solarized[5] = vec3(0.576,0.631,0.631); - solarized[6] = vec3(0.933,0.91,0.835); - solarized[7] = vec3(0.992,0.965,0.89); - solarized[8] = vec3(0.71,0.537,0.); - solarized[9] = vec3(0.796,0.294,0.086); - solarized[10] = vec3(0.863,0.196,0.184); - solarized[11] = vec3(0.827,0.212,0.51); - solarized[12] = vec3(0.424,0.443,0.769); - solarized[13] = vec3(0.149,0.545,0.824); - solarized[14] = vec3(0.165,0.631,0.596); - solarized[15] = vec3(0.522,0.6,0.); - - vec3 pixColor = vec3(texture2D(tex, v_texcoord)); - int closest = 0; - float closestDistanceSquared = distanceSquared(pixColor, solarized[0]); - for (int i = 1; i < 15; i++) { - float newDistanceSquared = distanceSquared(pixColor, solarized[i]); - if (newDistanceSquared < closestDistanceSquared) { - closest = i; - closestDistanceSquared = newDistanceSquared; - } - } - gl_FragColor = vec4(solarized[closest], 1.); -}