first commit
This commit is contained in:
40
GodotRetro/Screen Shaders/Aditional Shaders/BetterCC.shader
Executable file
40
GodotRetro/Screen Shaders/Aditional Shaders/BetterCC.shader
Executable file
@@ -0,0 +1,40 @@
|
||||
//SHADER ORIGINALY CREADED BY "Wunkolo" FROM SHADERTOY
|
||||
//MODIFIED AND PORTED TO GODOT BY AHOPNESS (@ahopness)
|
||||
//LICENSE : CC0
|
||||
//COMATIBLE WITH : GLES2, GLES3, WEBGL
|
||||
//SHADERTOY LINK : https://www.shadertoy.com/view/tllfRf
|
||||
|
||||
shader_type canvas_item;
|
||||
|
||||
uniform vec4 Shadows :hint_color = vec4(0.0, 0.0, 0.0, 1.0);
|
||||
uniform vec4 Midtones :hint_color = vec4(0.0, 0.0, 0.0, 1.0);
|
||||
uniform vec4 Hilights :hint_color = vec4(0.0, 0.0, 0.0, 1.0);
|
||||
|
||||
vec3 InvLerp( vec3 A, vec3 B, vec3 t){
|
||||
return (t - A) / (B - A);
|
||||
}
|
||||
|
||||
vec3 ColorGrade( in vec3 InColor ){
|
||||
// Calculate the three offseted colors up-front
|
||||
vec3 OffShadows = InColor + Shadows.xyz;
|
||||
vec3 OffMidtones = InColor + Midtones.xyz;
|
||||
vec3 OffHilights = InColor + Hilights.xyz;
|
||||
|
||||
// Linearly interpolate between the 3 new colors, piece-wise
|
||||
return mix(
|
||||
// We pick which of the two control points to interpolate from based on which side of
|
||||
// 0.5 the input color channel lands on
|
||||
mix(OffShadows, OffMidtones, InvLerp(vec3(0.0), vec3(0.5), InColor)), // < 0.5
|
||||
mix(OffMidtones, OffHilights, InvLerp(vec3(0.5), vec3(1.0), InColor)), // >= 0.5
|
||||
greaterThanEqual(InColor, vec3(0.5))
|
||||
);
|
||||
}
|
||||
|
||||
void fragment(){
|
||||
vec2 uv = FRAGCOORD.xy / vec2(1.0 / SCREEN_PIXEL_SIZE.xy);
|
||||
COLOR.a = 1.0;
|
||||
COLOR.rgb = texture(SCREEN_TEXTURE, uv).rgb;
|
||||
COLOR.rgb = ColorGrade(COLOR.rgb);
|
||||
|
||||
//COLOR.rgb = pow(COLOR.rgb, vec3(2.2));
|
||||
}
|
||||
Reference in New Issue
Block a user