luminosityHighPassFragmentShader top-level property

ShaderObject luminosityHighPassFragmentShader
final

Implementation

final ShaderObject luminosityHighPassFragmentShader =
    ShaderObject("LuminosityHighPassF")
      ..AddUniformVars([uRange, uColorAlpha, uTexture])
      ..SetBody([
        """
// http://stackoverflow.com/questions/596216/formula-to-determine-brightness-of-rgb-color
float RGB2Luma(vec3 rgb) { return dot(rgb, vec3(0.212, 0.715, 0.072)); }
// float RGB2Luma(vec3 rgb) { return dot(rgb, vec3(0.299, 0.587, 0.114)); }

void main() {
    vec4 color = texelFetch(${uTexture}, ivec2(gl_FragCoord.xy), 0);
    float luma = RGB2Luma(color.rgb);
    float alpha = smoothstep(${uRange}.x, ${uRange}.y, luma);
    ${oFragColor} = mix(${uColorAlpha}, color, alpha );
}
 """
      ]);