slang-shaders/include/img/sharpening.h

25 lines
630 B
C
Raw Normal View History

2020-04-29 13:37:24 +10:00
#ifndef SHARP_COORD
#define SHARP_COORD
// wrap texture coordinate when sampling
#pragma parameter ia_SHARPEN "Sharpen" 0.0 0.0 1.0 0.05
const vec2 offset = vec2(0.5, 0.5);
// based on "Improved texture interpolation" by Iñigo Quílez
// Original description: http://www.iquilezles.org/www/articles/texture/texture.htm
vec2 sharp(vec2 in_coord, vec4 tex_size){
vec2 p = in_coord.xy;
p = p * tex_size.xy + offset;
vec2 i = floor(p);
vec2 f = p - i;
f = f * f * f * (f * (f * 6.0 - vec2(15.0, 15.0)) + vec2(10.0, 10.0));
p = i + f;
p = (p - offset) * tex_size.zw;
p = mix(in_coord, p, ia_SHARPEN);
return p;
}
#endif