diff options
| author | Tim Redfern <tim@getdrop.com> | 2017-10-16 16:24:04 +0100 |
|---|---|---|
| committer | Tim Redfern <tim@getdrop.com> | 2017-10-16 16:24:04 +0100 |
| commit | a3c99df80c201e56a32eb5fe650d45e9a9ccaee2 (patch) | |
| tree | 5e070309793bf11d04e05919a3fb07b1e1157f62 /keyshade/bin/data/shader.frag | |
| parent | 5116dea8815de81ddaef299fdcae15f56ae3a87b (diff) | |
shader compiles
Diffstat (limited to 'keyshade/bin/data/shader.frag')
| -rw-r--r-- | keyshade/bin/data/shader.frag | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/keyshade/bin/data/shader.frag b/keyshade/bin/data/shader.frag new file mode 100644 index 0000000..7dbf468 --- /dev/null +++ b/keyshade/bin/data/shader.frag @@ -0,0 +1,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); +} |
