summaryrefslogtreecommitdiff
path: root/keyshade/bin/data/shader.frag
blob: 7dbf46825e9257dce7721ab8d5a2b773d97da7ad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#version 150

uniform vec4 keyColour;
uniform float keyMinDist;
uniform float keyMaxDist;

// these are our textures
uniform sampler2DRect backgroundTex;
uniform sampler2DRect foregroundTex;

// this comes from the vertex shader
in vec2 texCoordVarying;



// this is the output of the fragment shader
out vec4 outputColor;

void main()
{
	// Get color values from the background and foreground
	vec4 back = texture(backgroundTex, texCoordVarying);
	vec4 fore = texture(foregroundTex, texCoordVarying);

    // get alpha from mask
    float mask = texture(backgroundTex, texCoordVarying).r;

    vec4 delta = back - keyColour;
  	float distance2 = dot( delta, delta );
  	float weight = clamp( (distance2 - keyMinDist) / (keyMaxDist - keyMinDist) ,0.0,1.0);

  	//float4 transparent = IN.color;
  	//transparent.w = 0;
  	//OUT.color = lerp( transparent, IN.color, weight );
	
	//mix colors from background and foreground based on the mask value
    outputColor = mix(fore , back, weight);
}