#version 330 core
 
layout (location=0) out vec4 vFragColor;	//wyjście shadera fragmentów
//wejście z shadera wierzchołków
smooth in vec2 vUV;			//interpolowane współrzędne tekstury 2D

//uniform
uniform sampler2D textureMap;	//mapa tekstury

void main()
{	
   	vec4 color = vec4(0);
	//wyznaczanie odwrotności rozmiaru tekstury
	vec2 delta = 1.0/textureSize(textureMap,0);

	//pętla po najbliższym otoczeniu
	for(int j=-3;j<=3;j++) {
		for(int i=-3;i<=3;i++) {	
			//sumowanie próbek z sąsiedztwa
			color += texture(textureMap, vUV+ (vec2(i,j)*delta));
		}
	}
	//dzielenie przez liczbę próbek
	color/=49.0;
	//zwracanie wyliczonego koloru
    vFragColor =  color;
}