You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
FFmpegAndroid/Live/src/main/res/raw/romance.glsl

50 lines
1.5 KiB

#extension GL_OES_EGL_image_external : require
precision highp float;
varying highp vec2 textureCoordinate;
uniform samplerExternalOES inputImageTexture;
uniform sampler2D curve;
void main()
{
lowp vec4 textureColor;
lowp vec4 textureColorRes;
lowp vec4 textureColorOri;
vec4 grey1Color;
vec4 layerColor;
mediump float satVal = 115.0 / 100.0;
float xCoordinate = textureCoordinate.x;
float yCoordinate = textureCoordinate.y;
highp float redCurveValue;
highp float greenCurveValue;
highp float blueCurveValue;
textureColor = texture2D( inputImageTexture, vec2(xCoordinate, yCoordinate));
textureColorRes = textureColor;
textureColorOri = textureColor;
// step1. screen blending
textureColor = 1.0 - ((1.0 - textureColorOri) * (1.0 - textureColorOri));
textureColor = (textureColor - textureColorOri) + textureColorOri;
// step2. curve
redCurveValue = texture2D(curve, vec2(textureColor.r, 0.0)).r;
greenCurveValue = texture2D(curve, vec2(textureColor.g, 0.0)).g;
blueCurveValue = texture2D(curve, vec2(textureColor.b, 0.0)).b;
// step3. saturation
highp float G = (redCurveValue + greenCurveValue + blueCurveValue);
G = G / 3.0;
redCurveValue = ((1.0 - satVal) * G + satVal * redCurveValue);
greenCurveValue = ((1.0 - satVal) * G + satVal * greenCurveValue);
blueCurveValue = ((1.0 - satVal) * G + satVal * blueCurveValue);
textureColor = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
gl_FragColor = vec4(textureColor.r, textureColor.g, textureColor.b, 1.0);
}