demotool/shaders/bloom-highpass.f.glsl

20 lines
499 B
GLSL

#version 450 core
//! type fragment
layout( location = 0 ) uniform sampler2D u_Input;
layout( location = 1 ) uniform int u_LOD;
layout( location = 2 ) uniform vec2 u_InputSize;
layout( location = 3 ) uniform vec3 u_FilterParams;
layout( location = 0 ) out vec3 color;
void main( void )
{
const vec3 c = textureLod( u_Input ,
gl_FragCoord.xy / u_InputSize.xy , u_LOD ).xyz;
color = max( vec3( 0 ) ,
( pow( c , vec3( u_FilterParams.x ) ) * u_FilterParams.y - c )
* u_FilterParams.z );
}