38 lines
1,022 B
Plaintext
38 lines
1,022 B
Plaintext
|
@block frag
|
||
|
|
||
|
uniform float offset_amt;
|
||
|
|
||
|
// Sharpen kernel
|
||
|
float kernel[9] = float[](
|
||
|
-1, -1, -1,
|
||
|
-1, 9, -1,
|
||
|
-1, -1, -1
|
||
|
);
|
||
|
|
||
|
void frag()
|
||
|
{
|
||
|
vec2 offset = vec2(1/offset_amt, 1/offset_amt);
|
||
|
vec2 offsets[9] = vec2[](
|
||
|
vec2(-offset.x, offset.y), // top-left
|
||
|
vec2(0.0, offset.y), // top-center
|
||
|
vec2(offset.x, offset.y), // top-right
|
||
|
vec2(-offset.x, 0.0), // center-left
|
||
|
vec2(0.0, 0.0), // center-center (current pixel)
|
||
|
vec2(offset.x, 0.0), // center-right
|
||
|
vec2(-offset.x, -offset.y), // bottom-left
|
||
|
vec2(0.0, -offset.y), // bottom-center
|
||
|
vec2(offset.x, -offset.y) // bottom-right
|
||
|
);
|
||
|
|
||
|
color = vec4(0.0);
|
||
|
|
||
|
// Apply the kernel to the current pixel and its neighbors
|
||
|
for (int i = 0; i < 9; i++) {
|
||
|
vec3 samp = texture(sampler2D(diffuse,smp),uv+offsets[i]).rgb;
|
||
|
color.rgb += samp * kernel[i];
|
||
|
}
|
||
|
color.a = 1.0;
|
||
|
}
|
||
|
@end
|
||
|
|
||
|
#include <postbase.cg>
|