24 lines
597 B
GLSL
24 lines
597 B
GLSL
|
|
||
|
/* Fragment shader dealing with transitions */
|
||
|
|
||
|
uniform sampler2D currentScene;
|
||
|
uniform sampler2D frozenScene;
|
||
|
uniform sampler2D transMap;
|
||
|
/* Normalized */
|
||
|
uniform float prog;
|
||
|
/* Vague [0, 512] normalized */
|
||
|
uniform float vague;
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
vec2 texCoor = gl_TexCoord[0].st;
|
||
|
float transV = texture2D(transMap, texCoor).r;
|
||
|
float cTransV = clamp(transV, prog, prog+vague);
|
||
|
float alpha = (cTransV - prog) / vague;
|
||
|
|
||
|
vec4 newFrag = texture2D(currentScene, texCoor);
|
||
|
vec4 oldFrag = texture2D(frozenScene, texCoor);
|
||
|
|
||
|
gl_FragColor = mix(newFrag, oldFrag, alpha);
|
||
|
}
|