mirror of
https://github.com/italicsjenga/slang-shaders.git
synced 2024-11-30 03:11:31 +11:00
25 lines
630 B
C
25 lines
630 B
C
|
#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
|