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> |