2017-09-30 18:30:26 +02:00
|
|
|
#version 450 core
|
|
|
|
|
2017-10-04 17:48:25 +02:00
|
|
|
//! type fragment
|
|
|
|
|
2017-09-30 18:30:26 +02:00
|
|
|
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 )
|
|
|
|
{
|
2017-10-06 10:30:06 +02:00
|
|
|
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 );
|
2017-09-30 18:30:26 +02:00
|
|
|
}
|